《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:

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

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

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

linux下载python的地址_Linux下Python获取IP地址的代码相关推荐

  1. 戴尔服务器虚拟机配置ip地址,虚拟机下CentOS配置IP地址的三种方法

    1.自动获取IP地址 虚拟机使用桥接模式,相当于连接到物理机的网络里,物理机网络有DHCP服务器自动分配IP地址. #dhclient 自动获取ip地址命令 #ifconfig 查询系统里网卡信息,i ...

  2. python地址多少位_Python获取IP地址对应的地理位置信息!

    在学习中有迷茫不知如何学习的朋友小编推荐一个学Python的学习q u n 227 -435- 450可以来了解一起进步一起学习!免费分享视频资料 原理简介 利用了三个可以查询ip地址对应归属地的网站 ...

  3. java ip地址查询接口_java获取ip地址与网络接口的方法示例

    java获取ip地址与网络接口的方法示例 发布时间:2020-09-20 23:57:52 来源:脚本之家 阅读:66 作者:骏马金龙 java.net包 大家应该都知道,网络相关对象在java.ne ...

  4. linux python2.7安装教程_Linux下python升级至2.7步骤

    首先下载源tar包 可利用linux自带下载工具wget下载,如下所示: 下载完成后到下载目录下,解压 1 tar -zxvf Python-2.7.3.tgz 2 进入解压缩后的文件夹 1 cd P ...

  5. linux下python退出命令_Linux 下 Python按任意键退出方法

    某天在群内有同学问到,在python下我用input或者raw_input都得输入完后回车才能获取到输入的值,那如何实现任意键退出暂停等功能呢,我当时也没有多想,因为接触python时间也不算长,主要 ...

  6. linux的python开发环境_linux下python开发环境之一——安装python

    第二种是压缩比较好的,在linux中用bzip2压缩的文件比较高,文件名一般为*.tar.bz2, linux中下载安装的源码文件一般习惯放在/usr/local/src/中,src是source的缩 ...

  7. python 命名管道_Linux 下 Python 读取命名管道的疑惑

    先说需求: 文件系统里已经有一个命名管道(FIFO),偶尔有其它程序对其进行写入,需要将这些写入由 Python 程序进行读取,一次读一行内容. 我的最初想法是程序不断地读取FIFO(f.readli ...

  8. 用python做名片_Linux下python制作名片示例

    建立cards_main文件: # _*_ coding:utf-8 _*_ """ file: cards_main.py date: 2018-07-18 19:47 ...

  9. ubuntu 设置固定ip地址 或设置自动获取ip地址

    查看网卡名称 ifconfig //查看网卡名称,如enp5s0.enp3s0等 配置固定或自动ip sudo vi /etc/network/interfaces interfaces文件内容如下: ...

最新文章

  1. java script怎么用_如何在HTML中使用javascript?
  2. 教你用百度地图API抓取建筑物周边位置、房价信息(附代码)
  3. pil拷贝,剪切,缩放
  4. vs 命令行参数调试
  5. nginx+keepalived搭建主从负载均衡并迅速切换
  6. 用Java简便地去重+排序(洛谷P1059题题解,Java语言描述)
  7. 不止命令行-自定义VS生成事件
  8. 在线修改域控的IP和机器名
  9. php漏洞书籍,PHP漏洞全解(一)-PHP网站的安全性问题
  10. 2021年四川省副高考试成绩查询,2021年四川省教育考试院成绩查询登录入口
  11. layui参考文档地址
  12. php后门 佛像,给千年佛像做了个CT,结果好吓人
  13. 性能测试入门指南 (慎入: 6000 字长文)
  14. 2023计算机毕业设计SSM最新选题之java养生知识平台99ofs
  15. python 单词库_如何快速获取语料库中的单词集合(使用nltk)?
  16. 计算机二级oracle,关于计算机考试
  17. lisp 套料_标志排字及过桥的AutoCAD自动化插件设计
  18. 支付宝小程序分享转发
  19. 浩辰CAD看图王手机版中添加的图片批注在电脑端如何查看?
  20. E - 可惜明年花更好,知与谁同? SCU - 4576

热门文章

  1. 【hortonworks/registries】registries curator LeaderLatch: getChildren() failed. rc = -6 Xid 110
  2. 【elasticsearch】elasticsearch集群更换节点操作
  3. 【Es】es 配置文件详解
  4. 95-140-040-源码-transform-简介
  5. Docker 简易搭建 ElasticSearch 集群教程
  6. Java常见bean mapper的性能及原理分析
  7. 带你深入了解 GitLab CI/CD 原理及流程
  8. 我的JavaWeb学习2
  9. pycharm新建项目怎么选择框架_必看!心血管疾病怎么选择检查项目?
  10. 2019.08.26关于分页