php外网ip
A. php判断IP是中国IP还是外国IP
//返回ip所在的区域外国ip精确到国名
functiongetcposition($ip){
try{
$res1=file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=$ip");
$res1=json_decode($res1,true);
if($res1["code"]==0){
return$res1['data']["country"].$res1['data']["region"].$res1['data']["city"]."_".$res1['data']["isp"];
}else{
return"未能获取";
}
}catch(Exception$e){
return"未能获取";
}
}
B. PHP如何获取外网IP地址,类似于百度查询到的IP,网上的方法,查询到的都是局域网(内网)的IP,
发一个函数给你.
/**
*获取客户端IP地址
*@paraminteger$type返回类型0返回IP地址1返回IPV4地址数字
*@paramboolean$adv是否进行高级模式获取(有可能被伪装)
*@returnmixed
*/
functionget_client_ip($type=0,$adv=false){
$type=$type?1:0;
static$ip=NULL;
if($ip!==NULL)return$ip[$type];
if($adv){
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$arr=explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$pos=array_search('unknown',$arr);
if(false!==$pos)unset($arr[$pos]);
$ip=trim($arr[0]);
}elseif(isset($_SERVER['HTTP_CLIENT_IP'])){
$ip=$_SERVER['HTTP_CLIENT_IP'];
}elseif(isset($_SERVER['REMOTE_ADDR'])){
$ip=$_SERVER['REMOTE_ADDR'];
}
}elseif(isset($_SERVER['REMOTE_ADDR'])){
$ip=$_SERVER['REMOTE_ADDR'];
}
//IP地址合法验证
$long=sprintf("%u",ip2long($ip));
$ip=$long?array($ip,$long):array('0.0.0.0',0);
return$ip[$type];
}
如果是本地测试的话,获取到的是127.0.0.1
C. 本机可以访问,外网IP无法访问本机的web工程
在探讨为什么内网IP能访问本机web工程,而外网IP无法访问时,我们首先需要理解web服务器的运行环境与网络配置。
通常,web工程的运行语言可以是多种,包括但不限于Java、Python、Ruby、PHP或Node.js等。语言选择取决于项目需求、开发团队熟悉程度以及性能考量。
至于提到的IIS与JAVA,它们代表了两种不同的web服务器运行环境。IIS主要用于Windows操作系统,支持多种编程语言,如ASP.NET、PHP等;而Java则通常与开源的Apache Tomcat或Jetty服务器关联,提供高性能的web应用运行环境。因此,使用IIS或Java开发的web工程在理论上都能运行。
访问问题的关键在于网络配置。在局域网(内网)环境中,不同设备间的通信通常更为顺畅。内网IP能够访问本机web工程,是因为它们位于同一网络中,数据包可以通过局域网直接传输。
然而,当尝试从外网访问时,问题可能出在防火墙、路由规则或NAT(网络地址转换)设置上。网络设备(如路由器)可能阻止外部IP直接访问内网设备,除非特别配置了端口映射或NAT转发规则。
解决方法包括检查防火墙设置,确保没有阻止特定端口(如80或443)的通信;调整路由器或NAT设置,允许外部IP通过特定端口访问内网设备;或者使用公共IP服务(如DDNS),通过域名而非直接IP地址访问。
综上所述,内网IP能访问本机web工程,而外网IP无法访问的问题,通常与网络配置而非语言或服务器选择有关。合理调整网络设置,确保端口开放和路由规则正确配置,可以解决访问问题。
D. 安装PHPnow环境后,我打开http://127.0.0.1/结果不显示此服务器互联网IP!请问是怎么回事
需要用户名和密码
的原因原因是你的网站根目录权限问题。
你要把本机建立的服务器绑定到你的域名可以,但是有很多限制性因素。
1. 如果是有独立的外网IP并且是静态的话直接将域名解析到你的IP就好了。
2. 如果是普通宽带,那么你的IP是动态的,直接解析就不行了,因为你的IP会变的,只有通过动态域名解析(例如花生壳等),然后把域名用CNAME记录解析到动态域名上。
3. 如果是小区宽带,不但要做第二种情况的事还要找小区宽带让他们在路由器上把80端口映射到你的机器上。
楼主还有什么不明白给我留言。
E. php如何获取服务器外网的ip
function real_server_ip(){
static $serverip = NULL;
if ($serverip !== NULL){
return $serverip;
}
if (isset($_SERVER)){
if (isset($_SERVER['SERVER_ADDR'])){
$serverip = $_SERVER['SERVER_ADDR'];
}
else{
$serverip = '0.0.0.0';
}
}
else{
$serverip = getenv('SERVER_ADDR');
}
return $serverip;
}