php语言 百文网手机站

Python获取IP地址的三种方法

时间:2022-04-12 14:14:24 php语言 我要投稿

Python获取IP地址的三种方法

  Python由荷兰数学和计算机科学研究学会的吉多·范罗苏设计,Python提供了高效的高级数据结构,还能简单有效地面向对象编程,以下是小编为大家整理的Python获取IP地址的三种方法,希望对你有所帮助!

  使用拨号上网的话,一般都有一个本地ip和一个外网ip,使用python可以很容易的得到这两个ip

  使用gethostbyname和gethostbyname_ex两个函数可以实现

  代码如下

  import socket

  localIP = socket.gethostbyname(socket.gethostname())#这个得到本地ip

  print "local ip:%s "%localIP

  ipList = socket.gethostbyname_ex(socket.gethostname())

  for i in ipList:

  if i != localIP:

  print "external IP:%s"%i

  获取本地IP地址

  代码如下

  #!/usr/bin/python

  import socket

  import struct

  import fcntl

  def getip(ethname):

  s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

  return socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0X8915, struct.pack(‘256s’, ethname[:15]))[20:24])

  if __name__==’__main__’:

  print getip(‘eth0’)

  方法二,公网地址直接获取IP

  代码如下

  #!/usr/bin/env python

  import re,urllib2

  class Get_public_ip:

  def getip(self):

  try:

  myip = self.visit("http://www.111cn.net/")

  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()

  【拓展内容】

  Python和JavaScript语言转换的常用工具

  Transcrypt

  这是一款新近崛起的 Python 到 JS 转译器。Transcrypt 对于自身所生成代码的质量水平做出了令人印象深刻的承诺。首先,它会尽可能多地保留原始的 Python 代码结构,包括多重继承以及 lambda 表达式。Python 源代码也可以直接对 JavaScript 中命名空间内的对象进行调用。如果大家尝试访问 Python 中的 document.getElementById,则转换后的代码也将在JavaScript 当中切换使用 document.getElementById。

  根据说明文档的`介绍,Transcrypt 是利用 CPython 的抽象语法树模块完成这些转译任务的,其能够根据 Python 对自身代码的解析方式进行编程访问。尽管该项目目前仍处于 alpha 测试阶段,但已经显示出了非常惊人的吸引力。

  Jiphy

  所谓 Jiphy,代表的是“JavaScript 入,Python 出”——也就是能够对二者进行双向转换。另外,来自两种语言的代码都能够在被转换为另一种语言之前进行混合。

  Jiphy 目前的最大短板在于其仅支持 Python 的一部分功能集。类以及默认参数尚不受支持,不过装饰器与例外机制已经可以正常使用。这主要是因为 Jiphy 坚持在源代码与目标代码之间采用行对行直接转译方式,不过其开发人员也开始着眼于 ES6 中的新功能,旨在将更多高级 Python 功能纳入支持范畴。

  Brython

  也许有一天,当 WebAssembly 设想成为现实,那么我们将能够选择任何自己偏好的语言进行 Web 开发。而 Brython 对此——或者说至少适用于 Python 3——有着自己的理解:为什么要等?

  Brython 通过一套 JavaScript 库对 Python 3 中的全部关键字以及大多数内置插件进行模拟,从而实现了将 Python 3 版本作为客户端 Web 编程方案的目标。由 Python 编写的脚本可以被直接添加到网络页面当中,而 Brython 还支持一套高级 Python模块界面(browser),用于同 DOM 进行执行协作,且该浏览器通常可在 JavaScript 中直接完成。

  然而,Brython 也保持了浏览器给 JavaScript 代码带来的限制——例如不支持对本地文件系统进行处理。

  RapydScript

  RapydScript 承诺“让 Python 式 JavaScript 代码不再糟糕。”该项目在概念上类似于 CoffeeScript:以 Python 形式进行代码编写,生成 JavaScript 代码,并同时发挥二者的最佳特性。在 Python 方面,其拥有清晰的语法规则; 而在 JavaScript 方面,其拥有匿名函数、DOM 操作并能够使用 jQuery 或者 Node.js 内核等现有 JavaScript 库。

【Python获取IP地址的三种方法】相关文章:

php获取当前url地址的方法09-02

查看路由器IP地址方法10-07

IP地址的子网如何划分09-14

在linux系统下使用命令更改IP地址的方法02-18

win7 ip地址设置10-06

IP地址计算和子网划分09-13

ip地址计算与子网划分详解09-12

PHP获取星期的方法09-02

如何管理局域网IP地址10-05

win7 ip地址冲突怎么解决10-02