要获取本机在外网的IP地址,不是“192.168.xx.xxx”之类的局域网IP地址,怎么获取?
网上有一些网站可以查询自己的外网IP地址和所在地、运营商之类的信息,可以先获取HTML源码,然后把里面的IP信息用模式匹配取出来。
下面演示aardio的中文编程入门教程代码怎么写:
import win.ui;
/*DSG{{*/
var winform = win.form(text="简码编程 www.jianma123.com";right=668;bottom=421)
winform.add(
button={cls="button";text="获取HTML源码";left=30;top=365;right=210;bottom=402;z=1};
button2={cls="button";text="匹配IP";left=226;top=366;right=342;bottom=403;z=4};
edit={cls="edit";text="edit";left=20;top=17;right=655;bottom=269;autohscroll=false;aw=1;edge=1;multiline=1;vscroll=1;z=2};
edit2={cls="edit";text="edit2";left=19;top=276;right=655;bottom=352;aw=1;edge=1;multiline=1;z=3}
)
/*}}*/
import inet.http;
http = inet.http();//创建HTTP对象
winform.button.oncommand = function(id,event){
网页源码 = http.get("http://1212.ip138.com/ic.asp")//得到的HTML源码编码是gb2312.要转换为utf8,不然会显示为乱码
网页源码 = string.fromto(网页源码,936,65001)//转换编码,936是指gb2312,65001是指utf8
winform.edit.text = 网页源码;
}
winform.button2.oncommand = function(id,event){
//\d指数字,.指任意字节字符,[]号指自定义组合,{}指限定长度,[\d.]{8,16}是匹配8到16个字符长度的数字和任意单字符的组合字符串
var IP = string.match(winform.edit.text,"[\d.]{8,16}",);//
winform.edit2.text = IP;
}
winform.show()
win.loopMessage();
/*
中文编程入门教程,知识点:
string.match("字符串","模式串",开始位置)
参数@1指定目标字符串,参数@2指定查找模式串。
参数@3可选,用于指定起始位置,负数表示尾部倒计数,
返回匹配字符串,如果使用了匹配分组则返回多个对应的匹配串,
返回值的顺序对应模式串中左圆括号的开始顺序
*/