黑洞HTTP代理

黑洞HTTP

您的位置: 首页 > 新闻资讯 > HTTP代理 > 正文

python获取Ip归属信息

发布时间:2019年03月07日 来源:互联网

如果你有一批IP地址想要获得这些IP具体的信息,比如归属国家,城市等,最好的办法当时是调用现有的api接口来获取,具体应用场景可以根据自己需要,比如我在之前就写过一篇文章,是关于我的博客被莫名攻击的时,就有获取过一批IP,攻击的时候当然是恢复业务重要,IP该封的就要封,攻击过后这个攻击者的IP信息,自己就可以分析下都来自哪里,有没有什么特征,帮助提示自己网站的安全性,今天这个脚本就是根据提供的IP获得IP归属的具体信息,脚本如下:

python获取Ip归属信息

#!/usr/bin/env python

import requests


import csv




def getIp(file):


    iplist = []


    fi = open(file, 'r')


    for ip in fi:


        ip = ip.strip()


        iplist.append(ip)


    return iplist




def get_geolocation(ip):


    r = requests.get('https://freegeoip.net/json/' + ip)


    info = [str(r.json()['country_name']), str(r.json()['city'])]


    return {'ip':ip, 'country_name':info[0], 'city_name':info[1]}




if __name__ == '__main__':


    iplist = getIp('/root/ipfile')


    f = open('outputinfo.csv', 'a+')


    fieldnames = ['ip', 'country_name', 'city_name']


    dict_writer = csv.DictWriter(f, fieldnames=fieldnames)


    dict_writer.writerow(dict(zip(fieldnames, fieldnames)))


    for ip in iplist:


        data = get_geolocation(ip)


        dict_writer.writerow(data)


脚本解释,定义了2个函数,getIp()函数从文件中读取IP信息,返回一个列表,get_geolocation()函数负责实际得到信息,返回一个字典,接着在主函数打开一个可写的csv文件,通过循环将得到的信息写入一个CSV文件中,在写入csv 文件时用到了csv.DictWriter字典写的功能,这个还是比较实用,可以将数据结构类型为字典的数据直接写入csv文件,换句话说就是你只要把你要写的数据转换成字典的形式,就可以很方便的写入了,比如我这句dict(zip(fieldnames, fieldnames))其实就是这个功能,大家以后用到操作csv文件时,可以自己实践实践。


相关文章内容简介

1 python获取Ip归属信息

如果你有一批IP地址想要获得这些IP具体的信息,比如归属国家,城市等,最好的办法当时是调用现有的api接口来获取,具体应用场景可以根据自己需要,比如我在之前就写过一篇文章,是关于我的博客被莫名攻击的时,就有获取过一批IP,攻击的时候当然是恢复业务重要,IP该封的就要封,攻击过后这个攻击者的IP信息,自己就可以分析下都来自哪里,有没有什么特征,帮助提示自己网站的安全性,今天这个脚本就是根据提供的IP获得IP归属的具体信息,脚本如下:#!/usr/bin/env pythonimport requestsimport csvdef getIp(file):    iplist = []    fi = open(file, 'r')    for ip in fi:        [阅读全文]

热门标签

最新标签