欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Python制作簡(jiǎn)單的IP查詢工具

 更新時(shí)間:2024年03月01日 10:24:09   作者:shigen01  
這篇文章主要為大家詳細(xì)介紹了如何基于Python制作一個(gè)簡(jiǎn)單的IP查詢工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

hello,今天shigen給大家分享一下如何優(yōu)雅的查詢IP的工具。我們先看一下效果:

shigen在以前服務(wù)器被攻擊或者我的COS流量被盜刷的時(shí)候,經(jīng)常這樣用。很是方便的展示了ip對(duì)應(yīng)的地理位置,幫我快速的定位了攻擊的源頭。

我們接觸的也有很多的在線的API,提供ip的地理位置解析,我們也可以自定義一個(gè)腳本,調(diào)用遠(yuǎn)端的API,獲得數(shù)據(jù)。

那知道shigen的都知道,我比較喜歡離線的數(shù)據(jù),這意味著我擺脫了對(duì)于三方服務(wù)的依賴。如:對(duì)方的服務(wù)突然掛了,對(duì)方的服務(wù)限流了,對(duì)方的服務(wù)需要認(rèn)證了,這都是麻煩事情。所以本著爹有娘有,不如自己有,我選擇了一款包含離線數(shù)據(jù)庫(kù)的Ip2region。Ip2region的gitee地址,而我選的語言是python,具體的python代碼書寫我們參考官方的文檔。

其它編程語言都有支持,感興趣的伙伴可以自行了解。

shigen開始實(shí)現(xiàn)了。

首先,需要下載xdb文件。鏈接放在這里了,它放在了我的data文件夾里。

接下來核心的部分,代碼的實(shí)現(xiàn)。

1.獲得本地和遠(yuǎn)程的IP地址

def getLocalAndRemoteIp()-> tuple:
    import socket, requests
    s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.connect(('8.8.8.8',80))
    localIp =s.getsockname()[0]
    remoteIp = requests.get('http://ifconfig.me/ip', timeout=1).text.strip()
    return localIp,remoteIp

2.參照官方文檔的實(shí)現(xiàn)

代碼略長(zhǎng),建議橫屏觀看。大部分的參照官方的文檔,只做了查詢出數(shù)據(jù)的解析和格式化展示。

3.main函數(shù)

if __name__=='__main__':
    localIp,remoteIp=XdbSearcher.getLocalAndRemoteIp()
    print(f'localIp: {localIp},remoteIp: {remoteIp}')
    # cmd line arguments
    parser = argparse.ArgumentParser('a shell script which is executed to analyze the ip information')
    parser.add_argument('-ip','--ip',type=str,help='ipaddress', default=remoteIp)
    args = parser.parse_args()
    
    #1.緩存
    dbPath = os.path.join(os.path.dirname(__file__),'./data/ip2region.xdb')
    cb =XdbSearcher.loadContentFromFile(dbfile=dbPath)
    
    # 2.創(chuàng)建查詢對(duì)象
    searcher =XdbSearcher(contentBuff=cb)
    
    # 3.執(zhí)行查詢
    region_str=searcher.searchByIPStr(args.ip)
    print(region_str)
    searcher.close()

4.運(yùn)行測(cè)試

配置一個(gè)alias即可實(shí)現(xiàn)查詢IP自由。

怎么樣,這個(gè)技巧,你get到了嗎?

以上就是基于Python制作簡(jiǎn)單的IP查詢工具的詳細(xì)內(nèi)容,更多關(guān)于Python IP查詢的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論