C++反向 DNS 查找(在本地网络上)
C++ reverse dns lookup (on local network)
我目前正在开发一个"列出本地网络中发生的事情"工具,现在我被困在"为这个IP提供主机名"部分。
我已经尝试过getnameinfo和gethostbyaddr,但是第一个返回(几乎)总是给定的IP而不是主机名,第二个返回一些奇怪的东西,例如ANantes-651-1-49-net.w2-0.abo.wanadoo.fr
...
我的问题是:我怎样才能做到这一点?
注意:这并不是说没有与至少一个IP关联的主机名,例如dig +short -x 192.168.178.1
返回应有的fritz.box.
,并且host 192.168.178.1
给出正确的答案 1.178.168.192.in-addr.arpa domain name pointer fritz.box.
附加说明:在我的研究中,我偶然发现了一个名为"adns"的库,但"偶然发现"的意思是"几乎真的偶然发现",因为没有丝毫文档、示例等的痕迹......因此,如果有人真的有一个关于如何使用"adns"的例子,那就太好了......
Oook...似乎,就像我以几乎"猴子想香蕉"的方式搞砸了几件事......
第一名:
我用了这个:
...
sockaddr_in address;
memset(&address, 0, sizeof(address));
address.sin_family = AF_INET;
address.sin_addr.s_addr = inet_addr("192.168.178.1");
struct hostent *h =gethostbyaddr((const void *)&address, sizeof(address), AF_INET);
...
而不是正确的:
...
in_addr address;
inet_aton("192.168.178.1",&address);
struct hostent *h = gethostbyaddr((const void *)&address, sizeof(address), AF_INET);
...
第2名:
我有一行检查返回的主机名是否为空以将其替换为占位符,具体取决于所选的"报告格式"(纯文本/xml/csv)。但无论出于何种原因,我以某种方式编写它,它总是用所说的占位符替换主机名(dang!这有点明显,但我没有一直看到它......
但最后:耶!它有效...
相关文章:
- 在本地网络中通过OpenCV(C++)实时流式传输图像
- 用于本地网络运行的客户端服务器体系结构
- Winsock客户端在本地网络上发生错误11004
- 在本地网络中从外部计算机到计算机的连接
- 如何使用ACE在同一本地网络中ping另一个PC
- 如何在我当前连接的网络中获取本地 IP 地址?
- 如何获取本地网络上所有设备的名称和 ip
- 将 UNC 路径转换为网络系统的本地路径
- 用于本地网络的联机c/c++编译器
- 正在将数据库连接到本地网络中的程序
- ping 本地网络地址的最快方法
- C++反向 DNS 查找(在本地网络上)
- ASIO 客户端服务器在同一台 PC 上连接正常,但在本地网络上出现故障
- 无法在C++中将数据从服务器发送到本地网络上的客户端
- 无法从外部本地网络连接到 C++ Linux 套接字程序
- 扫描本地网络,并获得MAC, IP和主机名在c++或c#
- 如何从Android设备检测本地网络上未知计算机上的c++程序
- 在C++中检测本地网络上的客户端-服务器连接设备
- C++获取本地IP地址,区分VPN和本地网络
- 发送udp报文到本地网络异常