一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

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

服務器之家 - 腳本之家 - Python - Linux下Python獲取IP地址的代碼

Linux下Python獲取IP地址的代碼

2020-05-16 14:52腳本之家 Python

這篇文章主要介紹了Linux下Python獲取IP地址的代碼,需要的朋友可以參考下

《lnmp一鍵安裝包》中需要獲取ip地址,有2種情況:如果服務器只有私網地址沒有公網地址,這個時候獲取的IP(即私網地址)不能用來判斷服務器的位置,于是取其網關地址用來判斷服務器在國內還是國外(腳本為了使國內用戶快速下載,yum源自動設置成163,這個情況就需要獲取網關地址);如果服務器有公網地址,這時獲取的IP地址可用來直接判斷服務器地理位置。

獲取服務器IP,如果有公網地址就取公網地址,沒有公網地址就取私網網址
下面是之前我用shell來獲取本地IP腳本:

IP=`ifconfig | grep 'inet addr:' | cut -d: -f2 | grep -v ^10\. | grep -v ^192\.168 | grep -v ^172\. | \
grep -v ^127\. | awk '{print $1}' | awk '{print;exit}'`
 
[ ! -n "$IP" ] && IP=`ifconfig | grep 'inet addr:' | cut -d: -f2 | grep -v ^127\. | \
awk '{print $1}' | awk '{print;exit}'`

Python版:get_local_ip.py:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/env python
import socket
def Get_local_ip():
 """
 Returns the actual ip of the local machine.
 This code figures out what source address would be used if some traffic
 were to be sent out to some well known address on the Internet. In this
 case, a Google DNS server is used, but the specific address does not
 matter much. No traffic is actually sent.
 """
 try:
  csock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  csock.connect(('8.8.8.8', 80))
  (addr, port) = csock.getsockname()
  csock.close()
  return addr
 except socket.error:
  return "127.0.0.1"
 
if __name__ == "__main__":
 local_IP = Get_local_ip()
 print local_IP

有公網地址直接獲取,沒有公網地址就獲取網關地址(用于判斷IP地址的地理位置):get_public_ip.py

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env python
import re,urllib2
class Get_public_ip:
 def getip(self):
  try:
   myip = self.visit("http://www.whereismyip.com/")
  except:
   try:
    myip = self.visit("http://www.ip138.com/ip2city.asp")
   except:
    myip = "So sorry!!!"
  return myip
 def visit(self,url):
  opener = urllib2.urlopen(url)
  if url == opener.geturl():
   str = opener.read()
  return re.search('\d+\.\d+\.\d+\.\d+',str).group(0)
 
if __name__ == "__main__":
 getmyip = Get_public_ip()
 print getmyip.getip()

判斷服務器IP地理位置: get_ip_area.py

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/env python
#coding:utf-8
try:
 import sys,urllib2,json
 apiurl = "http://ip.taobao.com/service/getIpInfo.php?ip=%s" % sys.argv[1]
 content = urllib2.urlopen(apiurl).read()
 data = json.loads(content)['data']
 code = json.loads(content)['code']
 if code == 0:
  print data['country_id']
 else:
  print data
except:
 print "Usage:%s IP" % sys.argv[0]

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 天堂a免费视频在线观看 | 6080欧美一区二区三区四区 | 色婷婷在线 | 成人毛片高清视频观看 | 无码AV免费精品一区二区三区 | 男女男精品视频网站 | 欧美视频黑鬼大战白妞 | 国内免费高清视频在线观看 | 国产日韩成人 | 激情偷拍网| 我的奶头被客人吸的又肿又红 | 性欧洲女人18 | 亚洲国产精品自在自线观看 | 秋霞717理论片在线观看 | 色综合久久夜色精品国产 | 精品国产午夜久久久久九九 | 欧美日韩国产亚洲一区二区 | 五月婷婷在线观看 | darkside动漫在线观看 | 人妖女天堂视频在线96 | 美女被视频网站看免费入口 | 娇妻终于接受了3p的调教 | 1024免费永久福利视频 | 欧美特黄视频在线观看 | 亚洲香蕉伊在人在线观婷婷 | 成年人免费在线看的惊悚动作片 | 亚欧毛片基地国产毛片基地 | 女人pp被扒开流水了 | 四虎影院免费在线播放 | 91制片厂制作果冻传媒123 | 男男gaygays黑人| 国产福利视频一区二区微拍 | 白白国产永久免费视频 | 欧美三级一区二区 | 亚洲一区二区福利视频 | 欧美人交性视频在线香蕉 | 亚洲 综合 欧美在线 热 | free性日本| 男人资源站 | 青青青青青国产免费手机看视频 | 红色播放器 |