当前位置: 代码迷 >> ASP.NET >> 依据IP判断国家
  详细解决方案

依据IP判断国家

热度:6288   发布时间:2013-02-25 00:00:00.0
根据IP判断国家
最近做一个项目,需要根据用户的IP来判断所在的国家,然后执行相应的操作,这个要怎样实现呢?
查了IP地址分配表,还是没有结果,请问哪位能帮忙提供下解决方案?

------解决方案--------------------------------------------------------
www.ip138.com

或者找一个数据库。
------解决方案--------------------------------------------------------
会用webservices不?http://www.webxml.com.cn/zh_cn/web_services_item.aspx?id=56647553443555386D2F4D3D这里有一个IP的

------解决方案--------------------------------------------------------
Endpoint: http://webservice.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx  
Disco: http://webservice.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?disco  
WSDL: http://webservice.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl  

添加web应用


cn.com.webxml.webservice.IpAddressSearchWebService ip = new cn.com.webxml.webservice.IpAddressSearchWebService();
        string[] a = ip.getCountryCityByIp("125.39.117.63");


WebXml.com.cn IP地址搜索 WEB 服务包含中国和国外已知的IP地址数据,是目前最完整的IP地址数据,记录数量现已超过37万条并还在不断更新和增加中,因IP地址在不断变化,此IP地址数据查询仅供参考。
此IP地址搜索Web Services请不要用于任何商业目的,若有需要请联系我们,欢迎技术交流。 QQ:8409035
使用本站 WEB 服务请注明或链接本站:http://www.webxml.com.cn/ 感谢大家的支持!

 

支持下列操作。有关正式定义,请查看服务说明。 

getCountryCityByIp 


通过输入IP地址查询国家、城市、所有者等信息。没有注明国家的为中国
输入参数:IP地址(自动替换 " 。" 为 "."),返回数据: 一个一维字符串数组String(1),String(0) = IP地址;String(1) = 查询结果或提示信息




getGeoIPContext 


获得您的IP地址和地址信息
输入参数:无,返回数据: 一个一维字符串数组String(1),String(0) = IP地址;String(1) = 地址信息




getVersionTime 


获得本IP地址搜索 WEB 服务的数据库版本更新时间
输入参数:无,输出参数 String



这是说明文档,我给你copy了下。



------解决方案--------------------------------------------------------
webservice应该有点慢

下个IP库 来判断也行

.NET读取QQWry.Dat 纯真版ip数据库格式数据源
------解决方案--------------------------------------------------------
该回复于2011-04-03 21:43:10被版主删除

------解决方案--------------------------------------------------------
找个IP数据库,百度“IP数据库”就有,我用的是珊瑚虫的。

拿到之后,数据转成喜欢的格式,我是转成“003.000.000.000
------解决方案--------------------------------------------------------
004.255.255.255
------解决方案--------------------------------------------------------
美国
------解决方案--------------------------------------------------------
”这种格式的TXT文本。

基于文本写个查询,我用的是Table的过滤来实现
String strSql = "IP1 <= " + IpLocalMng.IptoLong(strIp) + " and  IP2 >=" + IpLocalMng.IptoLong(strIp);
......
DataRow[] drResult = dsData.Tables[0].Select(strSql);
  相关解决方案