草庐IT

getnameinfo

全部标签

c++ - 将 ip 解析为主机名

我正在尝试从IP地址解析主机名。我试过使用gethostbyaddr()和getnameinfo()但在很多情况下主机名根本没有解析。有没有更好的方法将IP地址转换为有效的主机名?char*ip=argv[1];//usinggethostbyaddr()hostent*phe=gethostbyaddr(ip,strlen(ip),AF_INET);if(phe){couth_name 最佳答案 Ihavetriedusinggethostbyaddr()andgetnameinfo()[...].Isthereabetterwa

c++ - 如何使用 getnameinfo 而不是 gethostbyname?

在代码中:if((host=(structhostent*)gethostbyname(address))==0)//addressisastring在4.5.xgcc上进行交叉编译(通用arm架构)时出现警告:(.text+0x1558):warning:gethostbynameisobsolescent,usegetnameinfo()instead.getnameinfo是:intWSAAPIgetnameinfo(__inconststructsockaddrFAR*sa,__insocklen_tsalen,__outcharFAR*host,__inDWORDhostle

c++ - 如何使用 getnameinfo 而不是 gethostbyname?

在代码中:if((host=(structhostent*)gethostbyname(address))==0)//addressisastring在4.5.xgcc上进行交叉编译(通用arm架构)时出现警告:(.text+0x1558):warning:gethostbynameisobsolescent,usegetnameinfo()instead.getnameinfo是:intWSAAPIgetnameinfo(__inconststructsockaddrFAR*sa,__insocklen_tsalen,__outcharFAR*host,__inDWORDhostle

getaddrinfo 和 getnameinfo 的正确用法

在我的C程序中,我使用getaddrinfo从主机名获取IP地址,并使用getnameinfo从IP地址获取主机名。这两个功能是互补的。我在mangetaddrinfo中读到我必须使用freeaddrinfo()函数来释放为动态分配的链表res分配的内存.因此我的代码看起来像这样:if((err=getaddrinfo(argv[1],NULL,&hints,&res))!=0){printf("error%d\n",err);return1;}addr.s_addr=((structsockaddr_in*)(res->ai_addr))->sin_addr.s_addr;print

IPv6 的 Swift getnameinfo 不可靠的结果

我在sockaddr上有以下扩展:extensionsockaddr{///IndicatesifthisisanIPv4address.varisIPv4:Bool{returnsa_family==UInt8(AF_INET)}///IndicatesifthisisanIPv6address.varisIPv6:Bool{returnsa_family==UInt8(AF_INET6)}///Returnstheaddressinstringnotation.varaddress:String?{varresult:String=""varme=selfvarhostname=[

c - getnameinfo 指定 socklen_t

getnameinfo原型(prototype)的第二个参数要求socklen_t类型,但sizeof使用size_t。那么我怎样才能得到socklen_t呢?原型(prototype):intgetnameinfo(conststructsockaddr*restrictsa,socklen_tsalen,char*restrictnode,socklen_tnodelen,char*restrictservice,socklen_tservicelen,intflags);例子:structsockaddr_inSIN;memset(&SIN,0,sizeof(SIN));//Th

c++ - getnameinfo 内存泄漏是否得到确认?

根据问题,我遇到了getnameinfo导致的一些内存泄漏。我正在使用Ubuntu12.04(Linuxscv3.2.0-35-generic#55-UbuntuSMPWedDec517:42:16UTC2012x86_64x86_64x86_64GNU/Linux)和gcc版本4.6.3.我正在将我的服务器可执行文件与g++链接,到目前为止valgrind还没有报告问题。然后,我添加了一个对getnameinfo的简单调用,以打印出连接客户端的网络名称和端口。我得到以下信息:==4425====4425==HEAPSUMMARY:==4425==inuseatexit:10bytes