[英]C# Getting the IP Address of the client which the UDP server socket received data from
[英]C: getting hostname from TCP and UDP socket?
我对连接协议不是很熟悉。
我正在使用以下代码来检查connect(),以便获得主机名:
#ifndef NI_MAXHOST
#define NI_MAXHOST 1025
#endif
int error;
char hostname[NI_MAXHOST] = "";
error = getnameinfo(serv_addr, addrlen, hostname, NI_MAXHOST, NULL, 0, 0);
if (error !=0) {
ALogTCP(@"coudldn't resolve hostname or internal connect");
[pool release];
return orig__connect(sockfd, serv_addr, addrlen);
}
if (error == 0) {
ALogTCP(@"hostname: %s", hostname);
NSString *hostFirst = [NSString stringWithCString:hostname];
}
如果挂接到sendto(),可以使用“相同”代码获取主机名(以便检查UDP)吗?
提前致谢。
您应该能够这样做,因为sendto()
传递了一个struct sockaddr
,就像您在示例代码中使用的一样。
当您“钩住” sendto()
我假设您将使用仅影响您自己的源代码的宏执行此操作,而不是像中间驱动程序那样。
DNS名称解析取决于发送UDP数据包,因此,如果要以足够低的级别“钩住” sendto()
,您的解决方案将无限递归,因为它会查找传出DNS查找数据包的主机名...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.