最近做一个项目,需要根据用户的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数据库格式数据源
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
找个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);