[Visual Basic] 纯文本查看 复制代码
.版本 2
.支持库 sock
.程序集 程序集1
.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行
返回 (0) ' 可以根据您的需要返回任意数值
.子程序 GetExtranetIP, 文本型, 公开, 成功返回外网IP,失败返回“127.0.0.1”。特点:不是通过网页获取,用TCP获取,速度快效率高。
.局部变量 client, 网络客户端
.局部变量 connect_ip, 文本型
.局部变量 local_ip, 字节集
.局部变量 sm, 逻辑型
.局部变量 头, 字节集
.局部变量 尾1, 字节集
.局部变量 中间数据1, 字节集
.局部变量 字符个数, 字节集
.局部变量 尾2, 字节集
.局部变量 ip, 文本型
connect_ip = 转换为IP地址 (“[url]www.3322.org[/url]”)
.如果 (client.连接 (connect_ip, 19112) = 真)
头 = 到字节集 (“EMSG0011”)
尾1 = 到字节集 (“”)
尾2 = 到字节集 (“”)
字符个数 = 到字节集 (到文本 (取文本长度 (“getip”)))
client.发送 (头 + { 174, 0, 0, 0, 0, 0, 0, 0, 174, 0, 0, 0 } + 尾1 + 字符个数 + 尾2 + 到字节集 (“getip”), 3000)
local_ip = client.接收 (6000, sm)
local_ip = local_ip + 到字节集 (“|”)
local_ip = 取字节集中间 (local_ip, 21, 取字节集长度 (local_ip) - 20)
ip = 文本_取出中间文本 (到文本 (local_ip), “”, “|”, , 假)
.如果 (sm = 真)
client.断开 ()
返回 (ip)
.否则
client.断开 ()
返回 (“127.0.0.1”)
.如果结束
.否则
client.断开 ()
返回 (“127.0.0.1”)
.如果结束
.子程序 文本_取出中间文本, 文本型, , 比如:欲取全文本为“12345”,现在要取出“3”,<3>的前面为“2”,<3>的后面为“4”。
.参数 欲取全文本, 文本型, , 比如:欲取全文本为 12345
.参数 前面文本, 文本型, , 3的前面为“2”,引号直接用 #引号,如:"[color=#引号red#引号]"
.参数 后面文本, 文本型, , 3的后面为“4”,引号直接用 #引号,如:"[color=#引号red#引号]"
.参数 起始搜寻位置, 整数型, 可空, 可空。1为首位置,2为第2个位置,如此类推,如果被省略,则“寻找字节集”命令默认从首部开始,“倒找字节集”命令默认从尾部开始。
.参数 是否区分大小写, 逻辑型, 可空, 可空。初始值为“假”。假 = 不区分 真 = 区分大小写。
.局部变量 局_位置, 整数型
.局部变量 局_位置1, 整数型
.局部变量 局_前面文本, 文本型
.局部变量 局_后面文本, 文本型
局_前面文本 = 子文本替换 (前面文本, “#引号”, #引号, , , 真)
局_后面文本 = 子文本替换 (后面文本, “#引号”, #引号, , , 真)
是否区分大小写 = 取反 (是否区分大小写)
局_位置 = 寻找文本 (欲取全文本, 局_前面文本, 起始搜寻位置, 是否区分大小写)
.如果真 (局_位置 ≠ -1)
局_位置 = 局_位置 + 取文本长度 (局_前面文本)
.如果真结束
局_位置1 = 寻找文本 (欲取全文本, 局_后面文本, 局_位置, 是否区分大小写)
.如果真 (局_位置 = -1 或 局_位置1 = -1)
返回 (“”)
.如果真结束
返回 (取文本中间 (欲取全文本, 局_位置, 局_位置1 - 局_位置))