易语言获取IP地址


‘使用易语言获取IP地址,并写出到运行目录

.版本 2
.支持库 internet
.支持库 sock

.子程序 _按钮1_被单击
.局部变量 外网IP, 文本型
.局部变量 内网IP, 文本型, , "0"
.局部变量 路径, 文本型

外网IP = 到文本 (HTTP读文件 (“http://www.3322.org/dyndns/getip”))
编辑框_外网.内容 = 外网IP
内网IP = 取本机IP ()
.判断开始 (是否已在线 () = 真)
    编辑框_内网.内容 = 内网IP [2]
.默认
    编辑框_内网.内容 = 内网IP [1]
.判断结束

路径 = 到文本 (取运行目录 () + “/ip.txt”)

写到文件 (路径, 到字节集 (编辑框_内网.内容) + 到字节集 (#换行符) + 到字节集 (编辑框_外网.内容))


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用易语言编写的简单的ping网络IP地址的源码: ```e '========================================================================== '模块名称 : Ping网络IP地址源码 '文件名称 : ping_ip_code.e '权 限 : 仅供参考学习,请勿用于非法用途 '编写时间 : 2022年1月1日 '编写人员 : 智能助手 '联系方式 : 无 '=========================================================================== '引用外部组件 Include "url/gpURL.e" '声明常量 Const ICMP_ECHO_REQUEST = 8 ICMP_ECHO_REPLY = 0 IP_HEADER_SIZE = 20 ICMP_HEADER_SIZE = 8 '定义类型 Type PingReplyType dwRoundTripTime DWord '往返时间 bTTL Byte '存活时间 bReply Byte '是否收到回复 strIP As String * 15 'IP地址 End Type '定义函数 Function Ping(ip As String) As PingReplyType '创建套接字 Dim hSock As Long hSock = CreateSocket(AF_INET, SOCK_RAW, IPPROTO_ICMP) '设置超时时间 SetSockOpt hSock, SOL_SOCKET, SO_RCVTIMEO, 3000 '构造ICMP请求包 Dim ICMPRequest(63) As Byte ICMPRequest(0) = ICMP_ECHO_REQUEST ICMPRequest(1) = 0 Dim nChecksum As Long nChecksum = ChecksumArray(ICMPRequest()) ICMPRequest(2) = nChecksum And &HFF ICMPRequest(3) = nChecksum Shr 8 And &HFF '发送ICMP请求包 Dim nSent As Long nSent = SendToSocket(hSock, ICMPRequest(), ICMP_HEADER_SIZE, ip, 0) '接收ICMP响应包 Dim ICMPReply(1023) As Byte Dim strReplyIP As Asciiz * 16 Dim nReceived As Long Dim nRecvIP As String * 16 nReceived = RecvFromSocket(hSock, ICMPReply(), 1023, strReplyIP, 16) '解析ICMP响应包 Dim Reply As PingReplyType Reply.dwRoundTripTime = Timer() - dwStartTime Reply.bTTL = ICMPReply(IP_HEADER_SIZE + 8) Reply.bReply = ICMPReply(20) Reply.strIP = strReplyIP Ping = Reply '关闭套接字 CloseSocket hSock End Function '测试程序 Dim Reply As PingReplyType Reply = Ping("192.168.1.1") If Reply.bReply = ICMP_ECHO_REPLY Then Print "Ping " + Reply.strIP + " 成功!" Else Print "Ping " + Reply.strIP + " 失败!" End If Delay 1000 ``` 这个源码使用了Windows底层的ICMP协议来进行ping操作,可以通过传入要ping的IP地址获取相关的回复信息,包括往返时间、存活时间和是否收到回复等。编译运行后可以在命令行窗口中输出ping操作的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值