MsgBox % ReverseLookup("8.8.8.8") ; ==> google-public-dns-a.google.com ReverseLookup(ipaddr) { hWS2_32 := DllCall("LoadLibrary", "str", "ws2_32.dll", "ptr") VarSetCapacity(WSADATA, 394 + (A_PtrSize - 2) + A_PtrSize, 0) if (DllCall("ws2_32\WSAStartup", "ushort", 0x0202, "ptr", &WSADATA) != 0) throw Exception("Failure in WSAStartup", -1), DllCall("ws2_32\WSACleanup") inaddr := DllCall("ws2_32\inet_addr", "astr", ipaddr, "uint") if !(inaddr) || (inaddr = 0xFFFFFFFF) throw Exception("inet_addr", -1), DllCall("ws2_32\WSACleanup") size := VarSetCapacity(sockaddr, 16, 0), NumPut(2, sockaddr, 0, "short") && NumPut(inaddr, sockaddr, 4, "uint") VarSetCapacity(hostname, 1025 * (A_IsUnicode ? 2 : 1)) if (DllCall("ws2_32\getnameinfo", "ptr", &sockaddr, "int", size, "ptr", &hostname, "uint", 1025, "ptr", 0, "uint", 32, "int", 0)) throw Exception("getnameinfo: " DllCall("ws2_32\WSAGetLastError"), -1) , DllCall("ws2_32\WSACleanup") return StrGet(&hostname+0, 1025, "cp0"), DllCall("ws2_32\WSACleanup") && DllCall("FreeLibrary", "ptr", hWS2_32) }
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。
评论(0)