激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python訪問純真IP數據庫腳本分享

Python訪問純真IP數據庫腳本分享

2020-07-18 11:05腳本之家 Python

這篇文章主要介紹了Python訪問純真IP數據庫腳本分享,本文直接給出實現代碼,需要的朋友可以參考下

項目中有這樣的需求,通過IP地址判斷客戶端是網通的還是電信的。從同事那拿了個純文本的IP純真數據庫,用Python寫了一個小程序,感覺挺好的。下面給出實現源碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
from bisect import bisect
 
_LIST1, _LIST2 = [], []
_INIT = False
 
ip2int = lambda ip_str: reduce(lambda a, b: (a << 8) + b, [int(i) for i in ip_str.split('.')])
 
def _init():
  global _LIST, _INIT
  if not _INIT:
    for l in open('ipdata.txt', 'rb'):
      ip1, ip2 = l.split()[:2]
      addr = ' '.join(l.split()[2:])
      ip1, ip2 = ip2int(ip1), ip2int(ip2)
      _LIST1.append(ip1)
      _LIST2.append((ip1, ip2, addr))
    _INIT = True
  
def ip_from(ip):
  _init()
  i = ip2int(ip)
  idx = bisect(_LIST1, i)
  assert(idx > 0)
  if len(_LIST1) <= idx:
    return u'unknown ip address %s' % ip
  else:
    frm, to ,addr = _LIST2[idx - 1]
    if frm <= i <= to:
      return addr
    else:
      return u'unknown ip address %s' % ip
  
if __name__ == '__main__':
  print ip_from('115.238.54.106')
  print ip_from('220.181.29.160')
  print ip_from('115.238.54.107')
  print ip_from('8.8.8.8')

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 羞羞答答影院 | 欧美一区二区三区久久综合 | 久久久久久久久久久高潮一区二区 | 国产手机国产手机在线 | 宅男噜噜噜66国产免费观看 | 一区二区三区欧美精品 | 国产成人av在线播放 | 91av视频大全| 日韩视频在线观看免费视频 | 暖暖免费观看高清完整版电影 | 日本中文高清 | 久久国语对白 | 91网视频| 欧美特黄视频 | 国产精品入口夜色视频大尺度 | 黄色毛片视频在线观看 | 中国嫩模一级毛片 | 国产一区二区精品在线观看 | 欧美一级片在线 | 99久久自偷自偷国产精品不卡 | 爱草成年| 欧美一级黄色免费看 | 日韩视频高清 | 午夜精品成人一区二区 | 国产88久久久国产精品免费二区 | av在线播放免费观看 | 毛片电影网址 | 久久精品之 | 国产日韩欧美 | 九色激情网 | 免费黄色短视频网站 | 色8久久| 中文字幕欧美在线 | 1314成人网 | 蜜桃视频在线免费观看 | 国产精品99久久免费观看 | 黄色片视频免费观看 | 一级毛片免费高清视频 | 成人免费午夜视频 | 在线天堂中文字幕 | xfplay噜噜av |