【问题标题】:How to determine that application is running on internet or intranet using php script如何使用 php 脚本确定应用程序是在 Internet 还是 Intranet 上运行
【发布时间】:2013-08-31 03:50:17
【问题描述】:

是否有任何方法可用,通过我们可以确定我们当前的连接是通过互联网还是使用 php 脚本的内部网。

谢谢.....

【问题讨论】:

  • 检查请求源的IP地址

标签: php


【解决方案1】:

你可以使用$_SERVER["HTTP_HOST"]变量来获取是localhost还是其他IP地址。

【讨论】:

  • 这在某种程度上详细说明了这个解决方案。 stackoverflow.com/questions/13818064/…
  • 内网一般的意思是“和服务器在同一个局域网”,而不仅仅是“和服务器在同一台电脑上”
【解决方案2】:

您可以对照 $_SERVER['REMOTE_ADDR'] 检查 $_SERVER['SERVER_ADDR'] 如果IP的第一个数字相同 并且是 192,172,10 或 127 那么它很可能是一个 Intranet 页面。

像这样:

function is_intranet() {
  $serverIP = explode('.',$_SERVER['SERVER_ADDR']);
  $localIP  = explode('.',$_SERVER['REMOTE_ADDR']);
  return ( 
    ($serverIP[0] == $localIP[0]) && 
    (in_array($serverIP[0],array('127','10','172','192') ) ) 
  );
}

使用这里的规则可以稍微改进一下:http://en.wikipedia.org/wiki/Private_network

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    • 1970-01-01
    • 2021-03-13
    • 2020-12-05
    相关资源
    最近更新 更多