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

Linux下Python獲取IP地址的代碼

 更新時(shí)間:2014年11月30日 21:07:44   投稿:mdxy-dxy  
這篇文章主要介紹了Linux下Python獲取IP地址的代碼,需要的朋友可以參考下

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

獲取服務(wù)器IP,如果有公網(wǎng)地址就取公網(wǎng)地址,沒(méi)有公網(wǎng)地址就取私網(wǎng)網(wǎng)址
下面是之前我用shell來(lái)獲取本地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:

#!/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

有公網(wǎng)地址直接獲取,沒(méi)有公網(wǎng)地址就獲取網(wǎng)關(guān)地址(用于判斷IP地址的地理位置):get_public_ip.py

#!/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()

判斷服務(wù)器IP地理位置: get_ip_area.py

#!/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]

相關(guān)文章

  • python遞歸實(shí)現(xiàn)快速排序

    python遞歸實(shí)現(xiàn)快速排序

    這篇文章主要為大家詳細(xì)介紹了python遞歸實(shí)現(xiàn)快速排序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • python使用for...else跳出雙層嵌套循環(huán)的方法實(shí)例

    python使用for...else跳出雙層嵌套循環(huán)的方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于python使用for...else跳出雙層嵌套循環(huán)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Python 日志logging模塊用法簡(jiǎn)單示例

    Python 日志logging模塊用法簡(jiǎn)單示例

    這篇文章主要介紹了Python 日志logging模塊用法,結(jié)合簡(jiǎn)單實(shí)例形式分析了Python 日志logging模塊功能、原理及日志輸出到控制臺(tái)與文件的相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • Jinja2實(shí)現(xiàn)模板渲染與訪問(wèn)對(duì)象屬性流程詳解

    Jinja2實(shí)現(xiàn)模板渲染與訪問(wèn)對(duì)象屬性流程詳解

    要了解jinja2,那么需要先理解模板的概念。模板在Python的web開(kāi)發(fā)中廣泛使用,它能夠有效的將業(yè)務(wù)邏輯和頁(yè)面邏輯分開(kāi),使代碼可讀性增強(qiáng),并且更加容易理解和維護(hù)。模板簡(jiǎn)單來(lái)說(shuō)就是一個(gè)其中包含占位變量表示動(dòng)態(tài)部分的文,模板文件在經(jīng)過(guò)動(dòng)態(tài)賦值后,返回給用戶
    2023-03-03
  • 解決python中 f.write寫入中文出錯(cuò)的問(wèn)題

    解決python中 f.write寫入中文出錯(cuò)的問(wèn)題

    今天小編就為大家分享一篇解決python中 f.write寫入中文出錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • python如何讀取100G的大文件實(shí)例探究

    python如何讀取100G的大文件實(shí)例探究

    這篇文章主要為大家介紹了python如何讀取100G的大文件實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Django上線部署之IIS的配置方法

    Django上線部署之IIS的配置方法

    這篇文章主要介紹了Django上線部署之IIS的配置方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 通過(guò)pycharm使用git的步驟(圖文詳解)

    通過(guò)pycharm使用git的步驟(圖文詳解)

    這篇文章主要介紹了通過(guò)pycharm使用git的步驟(圖文詳解),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 淺談pyqt5在QMainWindow中布局的問(wèn)題

    淺談pyqt5在QMainWindow中布局的問(wèn)題

    今天小編就為大家分享一篇淺談pyqt5在QMainWindow中布局的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • python 調(diào)用Google翻譯接口的方法

    python 調(diào)用Google翻譯接口的方法

    這篇文章主要介紹了python 調(diào)用Google翻譯接口的方法,幫助大家更好的理解和使用python處理url,感興趣的朋友可以了解下
    2020-12-12

最新評(píng)論