日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python 通过ip获取城市_python 根据ip获取地理位置

發(fā)布時(shí)間:2024/7/19 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 通过ip获取城市_python 根据ip获取地理位置 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

!/usr/bin/python

coding=utf-8

import dpkt

import socket

import pygeoip

import optparse

gi = pygeoip.GeoIP('GeoLiteCity.dat')

查詢數(shù)據(jù)庫(kù)相關(guān)的城市信息并輸出

def printRecord(tgt):

rec = gi.record_by_name(tgt)

city = rec['city']

# 原來的代碼為 region = rec['region_name'],已棄用'region_name'

region = rec['region_code']

country = rec['country_name']

long = rec['longitude']

lat = rec['latitude']

print '[*] Target: ' + tgt + ' Geo-located. '

print '[+] '+str(city)+', '+str(region)+', '+str(country)

print '[+] Latitude: '+str(lat)+ ', Longitude: '+ str(long)

def printPcap(pcap):

# 遍歷[timestamp, packet]記錄的數(shù)組

for (ts, buf) in pcap:

try:

# 獲取以太網(wǎng)部分?jǐn)?shù)據(jù)

eth = dpkt.ethernet.Ethernet(buf)

# 獲取IP層數(shù)據(jù)

ip = eth.data

# 把存儲(chǔ)在inet_ntoa中的IP地址轉(zhuǎn)換成一個(gè)字符串

src = socket.inet_ntoa(ip.src)

dst = socket.inet_ntoa(ip.dst)

print '[+] Src: ' + src + ' --> Dst: ' + dst

print '[+] Src: ' + retGeoStr(src) + '--> Dst: ' + retGeoStr(dst)

except:

pass

返回指定IP地址對(duì)應(yīng)的物理位置

def retGeoStr(ip):

try:

rec = gi.record_by_name(ip)

city = rec['city']

country = rec['country_code3']

if city != '':

geoLoc = city + ', ' + country

else:

geoLoc = country

return geoLoc

except Exception, e:

return 'Unregistered'

def main():

parser = optparse.OptionParser('[*]Usage: python geoPrint.py -p ')

parser.add_option('-p', dest='pcapFile', type='string', help='specify pcap filename')

(options, args) = parser.parse_args()

if options.pcapFile == None:

print parser.usage

exit(0)

pcapFile = options.pcapFile

f = open(pcapFile)

pcap = dpkt.pcap.Reader(f)

printPcap(pcap)

if name == 'main':

main()

總結(jié)

以上是生活随笔為你收集整理的python 通过ip获取城市_python 根据ip获取地理位置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。