+ -
当前位置:首页 → 问答吧 → 验证IP属于国内还是国外的PHP类

验证IP属于国内还是国外的PHP类

时间:2009-10-10

来源:互联网

本帖最后由 kupe 于 2009-12-25 00:00 编辑

唉, 被17楼的大哥, 说得一无是处了,  结贴
当没发过总可以了吧?

Navigation_01.gif (927 Bytes)

下载次数:36

2009-12-25 00:00

作者: kupe   发布时间: 2009-10-10

不行...貌似你IP库有问题

   222.180.192.12 在国外

作者: 0hudu   发布时间: 2009-10-11

本帖最后由 kupe 于 2009-10-12 21:14 编辑

康云川

哈哈, 感谢 康云川  朋友的回复, 经我仔细检查后, 发现并且是IP库的问题,  现在已经修正, 原因是 ip2long 这个函数

简单说明一下:  同样下面一段代码
echo $ip = '222.201.192.0';
echo "<br>";
echo $ip2 = ip2long('222.201.192.0');
echo "<br>";
echo $ip3 = sprintf('%u', ip2long('222.201.192.0'));
echo "<br>";
在WIN系统(本人的开发环境)  和演示系统 (LINUX) 得出不同的结果

WIN结果:
222.201.192.0
-557203456
LINUX结果:
222.201.192.0
3737763840

也就是 同样的函数,在WIN下返回的是负数, 而LINUX下返回的是正数

解决办法:
大家都返回正数即可
如:将代码:  
$ip2 = ip2long('222.201.192.0');   
改成: $ip2 = sprintf('%u', ip2long('222.201.192.0'));
查了一下手册, 手册上也有说明处理方法:
[php]Because PHP's integer type is signed, and many IP addresses will result in negative integers, you need to use the "%u" formatter of [url=mk:@MSITStore:E:\手册\PHP5手册php_manual_zh.chm::/fancy/function.sprintf.html]sprintf()[/url] or [url=mk:@MSITStore:E:\手册\PHP5手册php_manual_zh.chm::/fancy/function.printf.html]printf()[/url] to get the string representation of the unsigned IP address. [/php]


最后再次感谢  楼上的朋友, 让我修正了一个BUG, 欢迎各位朋友测试各种各样的IP地址进行验证  :)

作者: 康云川   发布时间: 2009-10-12

作者: kupe   发布时间: 2009-10-12

还搞加密 的?

作者: 温柔的大海   发布时间: 2009-10-13

验证这个有意义吗?直接用纯真的IP类不是很方便吗?

作者: index   发布时间: 2009-10-15

还是开源的好,大家好交流学习呀!

作者: sinopf   发布时间: 2009-10-16

sinopf
验证这个有意义吗?直接用纯真的IP类不是很方便吗?
sinopf 发表于 2009-10-16 08:45
有意义的  纯真的类也可以用, 我这样优点是: 速度快,IP库虽然只有 100~200K 但保证一个不差的准确验证   纯真的库有:7.6M大小。 当然不是说纯真的不好,只是大家的关注的重点不一样
他是大而全,  
我是小而精,就实现一个功能: 就是判断您的IP 是属于  国内 还是 国外

作者: 0058   发布时间: 2009-10-17

还是开源的好,大家好交流学习呀!
0058 发表于 2009-10-17 08:24
代码其实是半开源,  如果哪位有用,就可以直接使用的, 调用方法我都有说明了
不开源的原因: 这功能比较单一,高手不用看我的代码也能搞出来
一般新手看这个也没什么用。
有用的一般是当客户有 限制或判断国内,国外IP要求时,才用得上 :)

作者: kupe   发布时间: 2009-10-17

好东西,呵呵

作者: kupe   发布时间: 2009-10-17

搞加密的 晕 我是新手 不知道怎么反解密!

作者: ailla   发布时间: 2009-10-18

屁大个东西还加密,也就是调用几个函数的东东,显摆?

作者: xiaobai   发布时间: 2009-10-31

好东西,我也用ip纯真写过一个

作者: xyfxh   发布时间: 2009-11-04

不错,正需要~

作者: mangoing   发布时间: 2009-11-13

哈哈,楼主很不厚道,该程序有效期至2010-10-11,谁用谁倒霉的!

作者: sinnett   发布时间: 2009-11-13

本帖最后由 axpwx 于 2009-11-24 22:23 编辑

我放出这个程序个反编码后的代码,需要的可以直接下载。
我反编码这个文件的原因很简单,不是因为我需要,而是对楼主不开源的原因很感兴趣,一下为楼主的原话:

代码其实是半开源,  如果哪位有用,就可以直接使用的, 调用方法我都有说明了
不开源的原因: 这功能比较单一,高手不用看我的代码也能搞出来
一般新手看这个也没什么用。
有用的一般是当客户有 限制或判断国内,国外IP要求时,才用得上 :)
而我恰恰认为,只有新手才会看这种质量的代码。

而且,我建议,以后PHP China原创版不要再发不开源的代码了,发代码的意义本来是供大家共同学习研究的,同时也可以通过大家来发现代码中的不足。
但是某些人出于某种目的,老是爱发不开源的代码,还美其名曰供大家使用,但是我认为无论是高手还是新手,都不愿意使用别人现成的代码。

代码有点长,我就不贴了,都在附件里,需要的自己下载吧。
ip.zip (21.25 KB)
下载次数: 11
2009-11-24 22:18

作者: coolphp   发布时间: 2009-11-21

谢谢开发一个项目正要此东西,谢谢。

作者: axpwx   发布时间: 2009-11-24

qqwry

作者: mailangel123   发布时间: 2009-11-26

鄙视之

作者: taoyuyin   发布时间: 2009-11-27

回复 axpwx


    哈哈, N久不来这论坛了,  朋友还原的不错, 一模一样, 很强

作者: 兵马俑   发布时间: 2009-11-28

东西呢,

作者: kupe   发布时间: 2009-12-24

纯真的IP类

作者: mailangel123   发布时间: 2009-12-25