python获取Ip归属信息

python获取Ip归属信息,第1张

概述如果你有一批IP地址想要获得这些IP具体的信息,比如归属国家,城市等,最好的办法当时是调用现有的api接口来获取,具体应用场景可以根据自己需要,比如我在之前就写过一篇文章,是关于我的博客被莫名***的时,就有获取过一批IP,***的时候当然是恢复业务重要,IP该封的就要封,***过后这个***者的IP信

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

总结

以上是内存溢出为你收集整理的python获取Ip归属信息全部内容,希望文章能够帮你解决python获取Ip归属信息所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1188900.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存