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

Linux下Python獲取IP地址的代碼

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

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

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

#!/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)地址直接獲取,沒有公網(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)快速排序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • python使用for...else跳出雙層嵌套循環(huán)的方法實(shí)例

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

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

    Python 日志logging模塊用法簡單示例

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

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

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

    解決python中 f.write寫入中文出錯的問題

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

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

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

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

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

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

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

    淺談pyqt5在QMainWindow中布局的問題

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

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

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

最新評論