本帖最后由 xxhaishixx 于 2021-11-25 00:04 编辑
前言:
前段时间由于之前有位前辈写的,通过DNS服务器获取外网IP的例子(EC模块)失效,后来估计是DNS服务器调整,又恢复了。
我然后按照他的方法也写了一个,代码多了几行,那是因为我的服务器头不一样。一般按照易语言提供的tcp就不需要头。
特别注意:禁止转载(发布)到52破解。
原理:自己架设一个服务器,用tcp协议,服务端接收到客户信息的的时候含有客户端IP地址,直接返回给它就行了。
源码是客户端的,服务端的自己完善。反正原理都公布了,你们也知道怎么搞。
源码:
返回 (0 ) 变量名 | 类 型 | 静态 | 数组 | 备 注 | client | 网络客户端 | | | connect_ip | 文本型 | | | local_ip | 字节集 | | | sm | 逻辑型 | | | 头 | 字节集 | | | 尾1 | 字节集 | | | 中间数据1 | 字节集 | | | 字符个数 | 字节集 | | | 尾2 | 字节集 | | | ip | 文本型 | | |
connect_ip = 转换为IP地址 (“www.3322.org”) 如果 (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”) |
文本_取出中间文本 | 文本型 | | |
欲取全文本 | 文本型 | | | | 前面文本 | 文本型 | | | | 后面文本 | 文本型 | | | | 起始搜寻位置 | 整数型 | | | | 是否区分大小写 | 逻辑型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_位置 | 整数型 | | | 局_位置1 | 整数型 | | | 局_前面文本 | 文本型 | | | 局_后面文本 | 文本型 | | |
局_前面文本 = 子文本替换 (前面文本, “#引号”, #引号, , , 真)局_后面文本 = 子文本替换 (后面文本, “#引号”, #引号, , , 真)是否区分大小写 = 取反 (是否区分大小写 )局_位置 = 寻找文本 (欲取全文本, 局_前面文本, 起始搜寻位置, 是否区分大小写 ) 如果真 (局_位置 ≠ -1 ) 局_位置 = 局_位置 + 取文本长度 (局_前面文本 )局_位置1 = 寻找文本 (欲取全文本, 局_后面文本, 局_位置, 是否区分大小写) 如果真 (局_位置 = -1 或 局_位置1 = -1 ) 返回 (“”)返回 (取文本中间 (欲取全文本, 局_位置, 局_位置1 - 局_位置))
|