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 相关文章推荐
pycharm 使用心得(一)安装和首次使用
Jun 05 Python
Python类的专用方法实例分析
Jan 09 Python
python通过邮件服务器端口发送邮件的方法
Apr 30 Python
常见python正则用法的简单实例
Jun 21 Python
使用Python多线程爬虫爬取电影天堂资源
Sep 23 Python
Pycharm+Scrapy安装并且初始化项目的方法
Jan 15 Python
解决Python中定时任务线程无法自动退出的问题
Feb 18 Python
Python实现的统计文章单词次数功能示例
Jul 08 Python
Python socket 套接字实现通信详解
Aug 27 Python
Python 写了个新型冠状病毒疫情传播模拟程序
Feb 14 Python
使用python处理题库表格并转化为word形式的实现
Apr 14 Python
matplotlib相关系统目录获取方式小结
Feb 03 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
一个php作的文本留言本的例子(四)
2006/10/09 PHP
discuz Passport 通行证 整合笔记
2008/06/30 PHP
PHP+MYSQL 出现乱码的解决方法
2008/08/08 PHP
如何判断php数组的维度
2013/06/10 PHP
PHP与Java进行通信的实现方法
2013/10/21 PHP
PHP代码实现表单数据验证类
2015/07/28 PHP
PHP对象克隆clone用法示例
2016/09/28 PHP
解读IE和firefox下JScript和HREF的执行顺序
2008/01/12 Javascript
jQuery插件expander实现图片翻转特效
2015/05/21 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
2015/10/26 Javascript
vue2.0开发实践总结之疑难篇
2016/12/07 Javascript
vue.js 初体验之Chrome 插件开发实录
2017/05/13 Javascript
基于JavaScript实现无缝滚动效果
2017/07/21 Javascript
微信小程序实现topBar底部选择栏效果
2018/07/20 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
详解vue中的父子传值双向绑定及数据更新问题
2019/06/13 Javascript
ES6 async、await的基本使用方法示例
2020/06/06 Javascript
探索node之事件循环的实现
2020/10/30 Javascript
[05:26]2014DOTA2西雅图国际邀请赛 iG战队巡礼
2014/07/07 DOTA
Using Django with GAE Python 后台抓取多个网站的页面全文
2016/02/17 Python
利用scrapy将爬到的数据保存到mysql(防止重复)
2018/03/31 Python
python 获取utc时间转化为本地时间的方法
2018/12/31 Python
python使用thrift教程的方法示例
2019/03/21 Python
Python代码一键转Jar包及Java调用Python新姿势
2020/03/10 Python
html5+CSS3+JS实现七夕言情功能代码
2017/08/28 HTML / CSS
将世界上最美丽的摄影作品转化为艺术作品:Photos.com
2017/11/28 全球购物
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
汽车机修工岗位职责
2014/03/06 职场文书
竞选团支书演讲稿
2014/04/28 职场文书
小学雷锋月活动总结
2014/07/03 职场文书
学生会个人总结范文
2015/02/15 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
《祁黄羊》教学反思
2016/02/20 职场文书
node.js使用express-fileupload中间件实现文件上传
2021/07/16 Javascript
java实现面板之间切换功能
2022/06/10 Java/Android
设置IIS Express并发数
2022/07/07 Servers