python获取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文件时,可以自己实践实践。

时间: 2024-09-16 14:19:41

python获取Ip归属信息的例子的相关文章

xml-asp获取IP归属地怎么实现?

问题描述 asp获取IP归属地怎么实现? 在网上搜索了一下,获取客户端的访问IP,这个会. 但是如何查询出该IP的归属地如何实现? 网上提供了IP地址归属地查询接口,有返回json的,有返回xml的,有返回文本的. 不知道怎么使用.写的都比较简单. 能否运用到asp里面?能否提供一个比较完整的查询接口,可以查询归属地.ISP等信息的. 然后插入到数据库里. 能否举个详细的例子.谢谢. 解决方案 using System; using System.Collections.Generic; usi

python获取mp3文件信息的方法

  本文实例讲述了python获取mp3文件信息的方法.分享给大家供大家参考.具体如下: 将代码生成.py文件放在目录下运行,可以获取该目录的所有mp3文件的信息,需要使用ID3库 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import os, sys from ID3 import * files = os.listdir(os.getcwd()) for f in files: x = os.path.splitext(f) if x[1] == '.mp3':

Python获取电脑硬件信息及状态的实现方法_python

本文以实例形式展示了Python获取电脑硬件信息及状态的实现方法,是Python程序设计中很有实用价值的技巧.分享给大家供大家参考之用.具体方法如下: 主要功能代码如下: #!/usr/bin/env python # encoding: utf-8 from optparse import OptionParser import os import re import json def main(): try: parser = OptionParser(usage="%prog [optio

Linux下Python获取IP地址的代码_python

<lnmp一键安装包>中需要获取ip地址,有2种情况:如果服务器只有私网地址没有公网地址,这个时候获取的IP(即私网地址)不能用来判断服务器的位置,于是取其网关地址用来判断服务器在国内还是国外(脚本为了使国内用户快速下载,yum源自动设置成163,这个情况就需要获取网关地址):如果服务器有公网地址,这时获取的IP地址可用来直接判断服务器地理位置. 获取服务器IP,如果有公网地址就取公网地址,没有公网地址就取私网网址 下面是之前我用shell来获取本地IP脚本: IP=`ifconfig | g

python获取图片颜色信息的方法_python

本文实例讲述了python获取图片颜色信息的方法.分享给大家供大家参考.具体分析如下: python的pil模块可以从图片获得图片每个像素点的颜色信息,下面的代码演示了如何获取图片所有点的颜色信息和每种颜色的数量. from PIL import Image image = Image.open("jb51.gif") image.getcolors() 返回结果如下 复制代码 代码如下: ..., (44, (72, 64, 55, 255)), (32, (231, 208, 14

python实现获取Ip归属地等信息_python

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

Python获取IP地址的三种方法

  在python中获取IP地址的方法很简单,我们只和gethostbyname和gethostbyname_ex两个函数可以实现了,当然也可以利用公网api来实现. 使用拨号上网的话,一般都有一个本地ip和一个外网ip,使用python可以很容易的得到这两个ip 使用gethostbyname和gethostbyname_ex两个函数可以实现  代码如下   import socket localIP = socket.gethostbyname(socket.gethostname())#这

超简单的php获取ip地址信息的接口范例

通过php获取ip所属地的接口,要是自己弄一个ip库的话,会比较麻烦,而且需要经常更新,所以不现实.网上找了一些接口,发现好多都不能用了,于是自己写了一个,通过抓ip138页面来提取信息.只要它不改版,这个就能永久有效. 响应比较快,小网站用此接口完全没有问题,代码如下: <?php  header("Content-type:text/html;charset=utf-8");  $ip = checkip(@$_GET['ip']);  if(!$ip)  {   exit(

Python调用Ip138获取IP地址信息例子

例子  代码如下 复制代码 #!/usr/bin/env python # -*- coding: utf-8 -*- from sys import exit import urllib2 import re def ip():     url = "http://1111.ip138.com/ic.asp"     code = urllib2.urlopen(url).read()     ip = re.search('\d+\.\d+\.+\d+\.\d+',code).gr