hspping.dll (http://www.binzume.net/software/forhsp.html) がありますが、モジュール版ということで。微妙に互換性ないです。
hspping.dll (http://www.binzume.net/software/forhsp.html) がありますが、モジュール版ということで。微妙に互換性ないです。
// 改造はご自由に#module#uselib "ws2_32.dll"#cfunc WSAStartup "WSAStartup" int, sptr#cfunc inet_addr "inet_addr" str#cfunc gethostbyname "gethostbyname" str#uselib "icmp.dll"#cfunc IcmpCreateFile "IcmpCreateFile"#cfunc IcmpSendEcho "IcmpSendEcho" int, int, str, int, int, var, int, int#func IcmpCloseHandle "IcmpCloseHandle" int#deffunc InitPingsdim WSAData, 400if WSAStartup(0x0101, varptr(WSAData)) != 0{return -1}SetPingSendData "ICMP SEND DATA"return 0#deffunc SetPingSendData str datasend_data = datarecv_size = 28 + strlen(send_data) + 1return 0#defcfunc GetAddr str addrint_addr = 0int_addr = inet_addr(addr)if int_addr != 0{ret = gethostbyname(addr)if ret != 0{dupptr tmp, ret + 12, 4dupptr ret, tmp, 4dupptr int_addr, ret, 4}else{return 0}}return int_addr#deffunc Ping var ms, int _int_addr, int timeoutdim recv_data, (recv_size / 4) + 1hIcmp = IcmpCreateFile()ret = IcmpSendEcho(hIcmp, _int_addr, send_data, strlen(send_data), 0, recv_data, recv_size, timeout)if (ret != 0) {ms = recv_data.2}else{return -1}IcmpCloseHandle hIcmpreturn 0#global// IPv6には非対応です// 初期化InitPing// xn--n8j3azcmra9bymod5gnkxgnr.com -> こんなアドレスないってばよ.comping_addr_list.0 = "127.0.0.1", "www.google.co.jp", "www.yahoo.co.jp"ping_addr_list.3 = "www.microsoft.com", "329.932.129.848", "::1"ping_addr_list.6 = "xn--n8j3azcmra9bymod5gnkxgnr.com"repeat length(ping_addr_list)mes ping_addr_list(cnt) + " に ping を送信しています..."// ping してみるPing time, GetAddr(ping_addr_list(cnt)), 1000 // タイムアウト1秒if stat != -1{mes "-> " + time + " ms"}else{mes "-> ping 失敗"}mes "------------------------------------------"loop