利用PHP怎么对IP地址所在地信息进行获取

  介绍

利用PHP怎么对IP地址所在地信息进行获取?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<>强如下所示:

& lt; PHP ?   ,data 美元;=,& # 39;254.254.254.254& # 39;;   ,echo  ip2long(元数据);   ,   ,   ,function  getIP ()   ,{   采用,,如果“HTTP_CLIENT_IP"),,,, strcasecmp (getenv (“HTTP_CLIENT_IP"),“unknown"))   ,,ip 美元;=,getenv (“HTTP_CLIENT_IP");   采用,才能elseif“HTTP_X_FORWARDED_FOR"),,,, strcasecmp (getenv (“HTTP_X_FORWARDED_FOR"),“unknown"))   ,,ip 美元;=,getenv (“HTTP_X_FORWARDED_FOR");   ,,elseif  (getenv (“REMOTE_ADDR"),,,, strcasecmp (getenv (“REMOTE_ADDR"),“unknown"))   ,,ip 美元;=,getenv (“REMOTE_ADDR");   ,,elseif (收取($ _SERVER [& # 39; REMOTE_ADDR& # 39;]),,,, $ _SERVER [& # 39; REMOTE_ADDR& # 39;),,,, strcasecmp ($ _SERVER [& # 39; REMOTE_ADDR& # 39;],,“unknown"))   ,,ip 美元;=,$ _SERVER [& # 39; REMOTE_ADDR& # 39;];   其他的,,   ,,ip 美元;=,“0.0.0.0";   美元,才能return 知识产权;   ,}   ,   ,   ,class  IpLocation  {   ,,//数据文件指针   ,,var  fp美元;   ,,var  firstip美元;   ,,var  lastip美元;   ,,var  totalip美元;   ,   ,   ,,function  getlong (), {   ,,,//打开从二进制字符串对数据进行解包   ,,,//将读取的低位优先编码的4个字节转化为长整型数,从文件中读安全读取二进制文件   ,,,result 美元;=,解压缩(& # 39;Vlong& # 39;,,从文件中读($ this→fp,, 4));   ,,,return 结果美元[& # 39;长# 39;];   ,,}   ,   ,   ,,function  getlong3 (), {   ,,,//将读取的低位优先编码的3个字节转化为长整型数   ,,,result 美元;=,解压缩(& # 39;Vlong& # 39;,,从文件中读($ this→fp, 3) .chr (0));   ,,,return 结果美元[& # 39;长# 39;];   ,,}   ,   ,   ,,function  packip (ip), {   ,,,//包把数据装入一个二进制字符串   ,,,//ip2long将IP地址转成无符号的长整型,也可以用来验证IP地址   ,,,return 包(& # 39;n # 39;,, intval中(ip2long (ip)美元));   ,,}   ,   ,   ,,function  getstring ($ data =,““), {   ,,,char 美元;=,从文件中读($ this→fp,, 1);   ,,,while (奥德($字符),祝辞,0),{,,,//奥德返回字符的ASCII值,字符串按照C格式保存,以\ 0结束   ,,,,,data 美元。=,$字符;   ,,,,,char 美元;=,从文件中读($ this→fp,, 1);   ,,,}   ,,,return 元数据;   ,,}   ,   ,   ,,function  getarea (), {   ,,,byte 美元;=,从文件中读($ this→fp,,,,,//,标志字节   ,,,switch (奥德(字节)美元),{   ,,,,,case  0:,,,,,,,,,,,//,没有区域信息   ,,,,,,,area 美元;=,““   ,,,,,,,休息;   ,,,,,case  1:   ,,,,,case  2:,,,,,,,,,,,//,标志字节为1或2,表示区域信息被重定向   ,,,,,,,fseek ($ this→fp, $ this→getlong3 ());   ,,,,,,,area 美元;=,$ this→getstring ();   ,,,,,,,休息;   ,,,,,默认值:,,,,,,,,,,//,否则,表示区域信息没有被重定向   ,,,,,,,area 美元;=,$ this→getstring($字节);   ,,,,,,,休息;   ,,,}   ,,,return 美元区域;   ,,}   ,   ,   ,,function  getlocation (ip), {   ,,,if  (! $ this→fp), return 零,,,,,,,//,如果数据文件没有被正确打开,则直接返回空   ,,,美元位置[& # 39;ip # 39;],=, gethostbyname ($ ip);,,//,域名转化为ip地址   ,,,ip 美元;=,$ this→packip(美元位置[& # 39;IP # 39;]);,,//,将输入的IP地址转化为可比较的IP地址   ,,,//,不合法的IP地址会被转化为255   ,,,//,对分搜索   ,,,l 美元;=,0;,,,,,,,,,,,,,//,搜索的下边界   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

利用PHP怎么对IP地址所在地信息进行获取