文档章节

python IP地址查询归属

l
 langtu329
发布于 2015/10/30 14:31
字数 259
阅读 233
收藏 5
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#查找IP地址归属地
#writer by keery_log
#Create time:2013-10-30
#Last update:2013-10-30
#用法: python chk_ip.py www.google.com |python chk_ip.py 8.8.8.8 |python chk_ip.py ip.txt
 
import signal
import urllib
import json
import sys,os,re
import socket
 
if len(sys.argv) <= 1 :
    print "Please input ip address !"
    sys.exit(0)
 
def handler(signum, frame):
    sys.exit(0)
signal.signal(signal.SIGINT, handler)
  
url = "http://ip.taobao.com/service/getIpInfo.php?ip="
 
#查找IP地址
def ip_location(ip):
    data = urllib.urlopen(url + ip).read()
    datadict=json.loads(data)
 
    for oneinfo in datadict:
        if "code" == oneinfo:
            if datadict[oneinfo] == 0:
                return datadict["data"]["country"] + datadict["data"]["region"] + datadict["data"]["city"] + datadict["data"]["isp"]
 
#定义IP与域名正则
re_ipaddress = re.compile(r'^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$')
re_domain = re.compile(r'[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?')
 
if os.path.isfile(sys.argv[1]):  #如果参数是文件,迭代查找
    file_path = sys.argv[1]
    fh = open(file_path,'r')
    for line in fh.readlines():
        if re_ipaddress.match(line):
            city_address = ip_location(line)
            print line.strip() + ":" + city_address
else:
    ip_address = sys.argv[1]
    if re_ipaddress.match(ip_address):  #如果参数是单个IP地址
        city_address = ip_location(ip_address)
        print ip_address + ":" + city_address
    elif(re_domain.match(ip_address)):  #如果参数是域名
        result = socket.getaddrinfo(ip_address, None)
        ip_address = result[0][4][0]
        city_address = ip_location(ip_address)
        print ip_address.strip() + ":" + city_address


本文转载自:

共有 人打赏支持
l
粉丝 4
博文 54
码字总数 3286
作品 0
杭州
python +ip2region IP库地址文件实现秒级查询1万不同ip归属地址

一、服务器环境介绍: 服务器硬件:4核4g内存 服务器系统:centos6.9 x86_64位最小化安装 二、环境安装 参考地址:https://github.com/lionsoul2014/ip2region 直接下载包到服务器上的/root...

wjw555
07/09
0
0
linux命令行下查看ip归属地Python小脚本

今天之前追踪网络故障可能需要打开网址输入ip138等之类的网站查看问题ip归属地,这个脚本再mac/linux用来就是长期命令行操作的时候无需打开浏览器直接查询ip归属地来追踪网络归属地的小脚本,...

异类深呼吸
2014/03/31
0
2
Python使用Whois协议查询域名、IP地址信息

原文地址:http://shajunxing.tpddns.cn:8888/web/blog/2018-04-17-Python使用Whois协议查询域名、IP地址信息/index.html 问题由来 我想查询某个IP地址所属的运营商,于是在百度里搜索,得到...

shajunxing
04/17
0
0
这可能是最好玩的python GUI入门实例!

简单的说,GUI编程就是给程序加上图形化界面. python的脚本开发简单,有时候只需几行代码就能实现丰富的功能,而且python本身是跨平台的,所以深受程序员的喜爱. 如果给程序加一个图形化界面,那么...

zhaoolee
2017/09/16
0
0
设置 jupyter notebook 可远程访问&&设置jupyer 权限问题&

首先是要 安装 Anaconda 。 默认情况下,安装好 Anaconda 后打开 jupyter notebook, 访问本地 即可。但是如果要访问另一台机器,比如远端服务器上的 notebook, 即默认是不支持 这样的访问,需...

JungleKing
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

读书(附电子书)|小狗钱钱之白色的拉布拉多

关注公众号,在公众号中回复“小狗钱钱”可免费获得电子书。 一、背景 之前写了一篇文章 《小狗钱钱》 理财小白应该读的一本书,那时候我才看那本书,现在看了一大半了,发现这本书确实不错,...

tiankonguse
30分钟前
0
0
Permissions 0777 for ‘***’ are too open

异常显示: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ......

李玉长
32分钟前
0
0
区块链10年了,还未落地,它失败了吗?

导读 几乎每个人,甚至是对通证持怀疑态度的人,都对区块链的技术有积极的看法,因为它有可能改变世界。然而,区块链技术问世已经10年了,我们仍然没有真正的用上区块链技术。 几乎每个人,甚...

问题终结者
今天
2
0
20180921 su与sudo命令、限制root用户通过ssh远程登录

su 命令 用户切换。 su # 切换到root用户su username # 切换到username用户# su 后面加-时,会初始化当前用户的各种环境su - username # 指定用户执行某些命令 su - -c "touch /tm...

野雪球
今天
2
0
Windows 下双 Python 开发环境配置

Windows 下双 Python 开发环境配置作者:老农民(刘启华)QQ: 46715422Email: 46715422@qq.com微信: 46715422 本人曾经在 Windows 下被两个版本环境折腾够呛,现在总结两个 Python...

新疆老农民
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部