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模块简介之有序字典(OrderedDict)
Dec 01 Python
分享一个可以生成各种进制格式IP的小工具实例代码
Jul 28 Python
利用Python查看目录中的文件示例详解
Aug 28 Python
python 设置文件编码格式的实现方法
Dec 21 Python
Python3.6连接Oracle数据库的方法详解
May 18 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
Sep 13 Python
python2.7实现邮件发送功能
Dec 12 Python
通过shell+python实现企业微信预警
Mar 07 Python
python实现QQ批量登录功能
Jun 19 Python
Python 给定的经纬度标注在地图上的实现方法
Jul 05 Python
python中 _、__、__xx__()区别及使用场景
Jun 30 Python
python3访问字典里的值实例方法
Nov 18 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
php5 mysql分页实例代码
2008/04/10 PHP
PHP define函数的使用说明
2008/08/27 PHP
Thinkphp中Create方法深入探究
2014/06/16 PHP
PHP+jQuery 注册模块开发详解
2014/10/14 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
解决php扩展安装不生效问题
2019/10/25 PHP
js下利用控制器载入对应脚本
2010/07/17 Javascript
jQuery代码优化 遍历篇
2011/11/01 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
jquery实现向下滑出的二级导航下滑菜单效果
2015/08/25 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
详解基于angular-cli配置代理解决跨域请求问题
2017/07/05 Javascript
关于laydate.js加载laydate.css路径错误问题解决
2017/12/27 Javascript
使用mixins实现elementUI表单全局验证的解决方法
2019/04/02 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
ant design vue嵌套表格及表格内部编辑的用法说明
2020/10/28 Javascript
[46:44]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第二场 3月7日
2021/03/11 DOTA
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
git进行版本控制心得详谈
2017/12/10 Python
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
2018/03/20 Python
异步任务队列Celery在Django中的使用方法
2018/06/07 Python
pycharm 配置远程解释器的方法
2018/10/28 Python
Python基础之函数的定义与使用示例
2019/03/23 Python
Django中多种重定向方法使用详解
2019/07/17 Python
Pandas DataFrame中的tuple元素遍历的实现
2019/10/23 Python
树莓派4B安装Tensorflow的方法步骤
2020/07/16 Python
Python将字典转换为XML的方法
2020/08/01 Python
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
介绍一下Linux内核的排队自旋锁
2014/08/27 面试题
2014公司党员自我评价范文
2014/09/11 职场文书
吃通javascript正则表达式
2021/04/21 Javascript
详细了解java监听器和过滤器
2021/07/09 Java/Android
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript