python绝技 — 使用PyGeoIP关联IP地址和物理位置
准备工作
要关联IP与物理位置,我们需要有一个包含这样对应关系的数据库。
我们可以使用开源数据库GeoLiteCity,它能够较为准确地把IP地址与所在城市关联起来
下载地址:http://dev.maxmind.com/geoip/legacy/geolite/

下载之后我们解压:xz -d GeoLiteCity.dat.xz,如:/My/lib/ip/GeoLiteCity.dat

安装pygeoip库。这个库用于对GeoLiteCity数据库的查询

代码:
#!/usr/bin/python
#--*--coding=utf-8--*-- import pygeoip gi = pygeoip.GeoIP('/My/lib/ip/GeoLiteCity.dat') def printRecord(tgt):
rec = gi.record_by_addr(tgt)
city = rec['city']
region = rec['region_code']
country = rec['country_name']
long = rec['longitude']
lat = rec['latitude']
print '[*] 主机: ' + tgt + ' Geo-located.'
print '[+] ' + str(city) + ', ' +str(region)+', '+str(country)
print '[+] 经度: '+str(lat)+', 维度: '+ str(long) tgt = '183.141.110.74'
printRecord(tgt)
183.141.110.74是随便找的一个代理ip地址,查查看地址:

查询结果

python绝技 — 使用PyGeoIP关联IP地址和物理位置的更多相关文章
- java通过IP地址获取物理位置
import java.io.*; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern ...
- 转:为什么根据IP地址查询物理所在地,而不是mac地址?
来自 https://mp.weixin.qq.com/s/aOZQGMnMI2nkX4-qcJL4WQ 读者 不是说mac地址是计算机网卡唯一的地址吗?这样不是可以直接定位到某一台机器吗?为什么要用 ...
- python爬虫学习之查询IP地址对应的归属地
话不多说,直接上代码吧. import requests def getIpAddr(url): response = requests.get(url) response.encoding=resp ...
- python中利用正则表达式匹配ip地址
现在有一道题目,要求利用python中re模块来匹配ip地址,我们应如何着手? 首先能想到的是ip地址是数字,正则表达式是如何匹配数字的呢? \d或[0-9] 对于这个问题,不要一下子上来就写匹配模式 ...
- python跨网段遍历枚举IP地址(转)
转载链接:https://blog.csdn.net/u013042248/article/details/53165508 0x01 代码思路: 利用二进制遍历: 1.将IP地址分割,每一块转换为8 ...
- python学习-判断是否是IP地址
1.使用正则表达式 首先分析IP地址的组成,十进制的合法IP地址由32位数字组成 使用.分割开 每个分组可出现的情况: 第一个分组: 1-9:一位数字 10-99:两位数字 100-199:三位数字且 ...
- 使用Python获取计算机名,ip地址,mac地址等等
获取计算机名 # 获取计算机名,常用的方法有三种 import os import socket # method one name = socket.gethostname() print(name ...
- python 获取本机的 IP 地址,windows,linux均可
#encoding=utf-8 #参考csdn某篇文章 import socket def get_host_ip(): """ 查询本机ip地址 :return: ip ...
- Python获取本机所有IP地址
import socket # 查看当前主机名 print('当前主机名称为 : ' + socket.gethostname()) # 根据主机名称获取当前IP print('当前主机的IP为: ' ...
随机推荐
- 如何给TableLayout加边框
呵呵,其实很简单 就是将TableLayout定义一种颜色,在给TableRow定义一种颜色.通过TableRow的layout_margin挤出一个像素的宽度就变成了TableLayout的宽度.这 ...
- beanutils中jdbc
public class JDBCTest { // public static void main(String[] args) throws Exception {// Cla ...
- MVC程序中实体框架的连接恢复和命令拦截
MVC程序中实体框架的连接恢复和命令拦截 这是微软官方SignalR 2.0教程Getting Started with Entity Framework 6 Code First using MVC ...
- ASP.NET MVC应用程序实现下载功能
ASP.NET MVC应用程序实现下载功能 上次Insus.NET有在MVC应用程序实现了上传文件的功能<MVC应用程序显示上传的图片> http://www.cnblogs.com/in ...
- NPOI 2.0 Excel读取显示
NPOI 2.0 Excel读取显示 最近接到需求,需要把excel表格里的数据原样展示到web页面,主要是满足随意跨行跨列. 之前用过一点NPOI,不过接触的不太多,趁这次机会再熟悉一下.由于操 ...
- IOS UI 第三篇:基本UI
工厂模式: .h文件: #import <Foundation/Foundation.h>typedef enum{ QFRed, QFYellow, QFBlu ...
- javascript继承之借用构造函数与原型
javascript继承之借用构造函数与原型 在js中,关于继承只有利用构造函数和原型链两种来现实.以前所见到的种种方法与模式,只不过是变种罢了. 借用构造函数 1 2 3 4 5 6 7 8 9 1 ...
- OSG在WIN与VS中配置与测试
欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/1392531060.html Windo ...
- ASP.Net页面传值比较
ASP.Net页面传值比较 作为一个ASP.Net程序员,尤其是搞B/S开发的,对于不同页面之间变量值的传递用的非常广泛,而掌握不同方式之间的区别和特点也就很有必要.本文将针对这一知识点做一个简单 ...
- MVC 5 - 将数据从控制器传递给视图
MVC 5 - 将数据从控制器传递给视图 在我们讨论数据库和数据模型之前,让我们先讨论一下如何将数据从控制器传递给视图.控制器类将响应请求来的URL.控制器类是给您写代码来处理传入请求的地方,并从数据 ...