无需技术,做网站,你也牛!
所有新购主机 增送数据库
操作简洁 功能强大
专业团队 资深背景
微信搜索:cn163ns
主要功能是针对微信商家公众号提供与众不同的、有针对性的营销推广服务。通过微信平台,用户可以轻松管理自己的微信各类信息,对微信公众账号进行维护、开展智能机器人、在线发优惠劵、抽奖、刮奖、派发会员卡、打造微官网、开启微团购等多种活动,对微信营销实现有效监控,极大扩展潜在客户群和实现企业的运营目标。无使用时间和功能限制
C#写程序时需要用到一些IP数据库,这样可以根据来访者的ip地址获取到地理位置信息,如省份、地市等信息。网上大多是收费的,还有的api接口是有访问次数限制的,要么就是旧的数据库,数据不全的。思来想去还是自己动手丰衣足食,利用淘宝IP地址库批量查询获取ip地理信息并入库。
淘宝IP地址库有个好处就是:不限查询次数及频次。
淘宝IP地址库地址:http://ip.taobao.com/;
接口说明:
1. 请求接口(GET):
http://ip.taobao.com/service/getIpInfo.PHP?ip=[ip地址字串]
2. 响应信息:
(json格式的)国家 、省(自治区或直辖市)、市(县)、运营商
3. 返回数据格式:
{"code":0,"data":{"ip":"210.75.225.254","country":"\u4e2d\u56fd","area":"\u534e\u5317",
"region":"\u5317\u4eac\u5e02","city":"\u5317\u4eac\u5e02","county":"","isp":"\u7535\u4fe1",
"country_id":"86","area_id":"100000","region_id":"110000","city_id":"110000",
"county_id":"-1","isp_id":"100017"}}
其中code的值的含义为,0:成功,1:失败。
大致思路:C#枚举所有IPv4地址,然后逐一模拟浏览器Get操作获取地理位置信息并入库。
1、C#枚举所有IPv4地址:
192.0.2.1 一个Ip地址
192.0.2.0-31 枚举192.0.2.0-192.0.2.31 一共32个Ip地址
192.0.2-3.1-254 枚举192.0.2.1-192.0.2.254和 192.0.3.1-192.0.3.254 一共254个IP地址
0-255.0-255.0-255.0-255 枚举互联网上所有的IPv4地址
代码实现:
string pattern="200.64-71.0-255.0-255";
IPRange ipRange=new IPRange(pattern);
List
这里的addresses即为枚举到的ip地址集合。
2、C#模拟浏览器Get方式获取数据参见:C#发送GET、POST方式的web请求
3、获取到的地理信息以JSON方式返回,自己建一个和结果属性名字一样的类,然后将地理信息JSON结果反序列化为这类的实例,反序列化类库参考:C#序列化及反序列化Json对象通用类JsonHelper
4、然后写入数据库