python获取外网ip地址的方法总结


Posted in Python onJuly 02, 2015

本文实例总结了python获取外网ip地址的方法。分享给大家供大家参考。具体如下:

一、利用脚本引擎库直接获取

import console;
import web.script
import inet.http;
var jsVm = web.script("JavaScript")
jsVm.AddCode( inet.http().get("http://fw.qq.com/ipaddress") )
var ipAddr = jsVm.CodeObject.IPData[0];
console.log( "您的外网IP地址:",ipAddr )

二、http库,模式匹配获取

import inet.http;
getIp = function(){
  var http = inet.http()
  http.flags = 0x80000000/*_INTERNET_FLAG_RELOAD强制文件从服务器下载不是缓存*/
      | 0x4000000/*_INTERNET_FLAG_DONT_CACHE*不缓存数据*/
  var str = http.get("http://fw.qq.com/ipaddress")
  return str?string.match(str,'"(.+?)"')
}
io.open()
io.print(getIp())

三、whttp库,模式匹配获取

//获取IP
import inet.whttp;
getIp = function(){  
  var whttp = inet.whttp()  
  var str = whttp.get("http://www.ip138.com/ip2city.asp? r="+tonumber(time.now()))
  whttp.close()
  return str?string.match(str,"\[(.*?)\]");
    
}
io.open()
io.print(getIp())

四、API方法

io.open();
var IPHLPAPI = raw.loadDll("IPHLPAPI.DLL")
var GetIpAddrTable = IPHLPAPI.api("GetIpAddrTable","int(struct &pIpAddrTable,int &pdwSize,int border)")
IPInfo = class {
  int dwAddr;
  int dwIndex;
  int dwMask;
  int dwBCastAddr;
  int dwReasmSize;
  word unused1;
  word unused2  
}
var PMIB_IPADDRTABLE = class {
  int dEntrys;
  struct mIPInfo[255] = { ..IPInfo() };
}
var ipStruct = PMIB_IPADDRTABLE();
var re, ipStruct, ret = GetIpAddrTable(ipStruct, 0, 1);
var re, ipStruct, ret = GetIpAddrTable(ipStruct, re, 0);
var ipData = ipStruct.mIPInfo[ipStruct.dEntrys - 1].dwAddr;
var ip = raw.convert({ int n = ipData }, { BYTE data[4] });
io.print( string.format("%d.%d.%d.%d", ip.data[1], ip.data[2], ip.data[3], ip.data[4]) );

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python自定义函数的创建、调用和函数的参数详解
Mar 11 Python
Python使用wxPython实现计算器
Jan 30 Python
python实现多线程行情抓取工具的方法
Feb 28 Python
python pandas中DataFrame类型数据操作函数的方法
Apr 08 Python
使用Python开发SQLite代理服务器的方法
Dec 07 Python
python实现高斯判别分析算法的例子
Dec 09 Python
python3 webp转gif格式的实现示例
Dec 10 Python
Python垃圾回收机制三种实现方法
Apr 27 Python
python调用有道智云API实现文件批量翻译
Oct 10 Python
详解Anaconda安装tensorflow报错问题解决方法
Nov 01 Python
tensorflow中的数据类型dtype用法说明
May 26 Python
Python使用永中文档转换服务
May 06 Python
python实现将英文单词表示的数字转换成阿拉伯数字的方法
Jul 02 #Python
python脚本内运行linux命令的方法
Jul 02 #Python
举例区分Python中的浅复制与深复制
Jul 02 #Python
Python多进程机制实例详解
Jul 02 #Python
Python回调函数用法实例详解
Jul 02 #Python
在Python中marshal对象序列化的相关知识
Jul 01 #Python
python保存字符串到文件的方法
Jul 01 #Python
You might like
用libtemplate实现静态网页生成
2006/10/09 PHP
简单实用的PHP防注入类实例
2014/12/05 PHP
PHP+RabbitMQ实现消息队列的完整代码
2019/03/20 PHP
Laravel 创建可以传递参数 Console服务的例子
2019/10/14 PHP
FLASH 广告之外的链接
2008/12/16 Javascript
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
node.js中的fs.utimes方法使用说明
2014/12/15 Javascript
Angularjs中UI Router的使用方法
2016/05/14 Javascript
Bootstrap布局组件教程之Bootstrap下拉菜单
2016/06/12 Javascript
Vue.js学习笔记之 helloworld
2016/08/14 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
微信小程序开发教程-手势解锁实例
2017/01/06 Javascript
js通过keyCode值判断单击键盘上某个键,然后触发指定的事件方法
2017/02/19 Javascript
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
2017/10/13 jQuery
Django中使用jquery的ajax进行数据交互的实例代码
2017/10/15 jQuery
详解使用React全家桶搭建一个后台管理系统
2017/11/04 Javascript
JavaScript基于遍历操作实现对象深拷贝功能示例
2019/03/05 Javascript
Layui 解决表格异步调用后台分页的问题
2019/10/26 Javascript
详解js中的原型,原型对象,原型链
2020/07/16 Javascript
javascript实现简易计算器功能
2020/09/23 Javascript
python虚拟环境的安装配置图文教程
2017/10/20 Python
python编程培训 python培训靠谱吗
2018/01/17 Python
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
tensorboard实现同时显示训练曲线和测试曲线
2020/01/21 Python
一个基于canvas的移动端图片编辑器的实现
2020/10/28 HTML / CSS
物流管理专业应届生求职信
2013/11/21 职场文书
幼儿园大班毕业感言
2014/02/06 职场文书
无传销社区工作方案
2014/05/13 职场文书
2019年让高校“心动”的自荐信
2019/03/25 职场文书
MySQL8.0.24版本Release Note的一些改进点
2021/04/22 MySQL
Redis入门教程详解
2021/08/30 Redis
MySQL中的隐藏列的具体查看
2021/09/04 MySQL
最新最全的手机号验证正则表达式
2022/02/24 Javascript