高分求教:如何能正确获取sockaddr中的ip地址?
我在Connect函数中(将原有的替换成我自己的),添加代码以进行网址比较(只让允许
的通过)。
获取 const struct sockaddr FAR * name 参数中的地址结构,具体获取代码如下:
SOCKADDR_IN *InetAddr =(SOCKADDR_IN *)name;//将connect的参数赋给 SOCKADDR_IN类型变量
DWORD *InetIp=(DWORD*)&InetAddr->sin_addr;//转换为双字
DWORD InetIphontl=htonl(*InetIp); //转换为网络字节顺序
BYTE IsAccessIp[4];
memcpy(IsAccessIp,&InetIphontl,sizeof(DWORD));//将地址内容放入BYTE变量中用于后面判断
if(!(IsAccessIp[3]==202&&IsAccessIp[2]==108&&) //判断只要地址为:202。108。*。* 就放行
但在调试中,此方法不能通过(调试的地址就为程序中的)。
我错在那呢?
还有一问题:套节字中的SOCKADDR_IN-〉SIN_ADDR的地址是什么数据形式(二进制吗)。
还望高手解答!高分以谢!