unsigned long inet_addr( const char* cp );Parameters cp [in] Null-terminated character string representing a number expressed in the Internet standard ".'' (dotted) notation. Return Values If no error occurs, inet_addr returns an unsigned long value containing a suitable binary representation of the Internet address given. If the string in the cp parameter does not contain a legitimate Internet address, for example if a portion of an "a.b.c.d" address exceeds 255, then inet_addr returns the value INADDR_NONE.Header: Declared in Winsock2.h. Library: Use Ws2_32.lib.
这个方法怎么能判别 错误IP ,比如 "192.168.0.1ss" 应该是不可以的
是的: LPSTR as = "192.168.0.2s"; unsigned long aa = inet_addr((char *)as); LPSTR bs = "192.168.1223.3"; unsigned long bb = inet_addr((char *)bs); LPSTR cs = "126.123.25.2"; unsigned long cc = inet_addr((char *)cs);
if(4==sscanf(szIP,"%d.%d.%d.%d",&a,&b,&c,&d) && a>=0 && a<256 && b>=0 && b<256 && c>=0&& c<256 && d>=0 && d<256)
{
//OK
}
如果非法,则返回INADDR_NONE
如果是这样 char szIP[256]="192.156.0.1ssss";
也会被认为是正确的IP的
要怎么改?inet_addr 这个方法在哪里有啊? 我在MSDN中没有查到啊
gethostbyaddr() 这个也没有查到
inet_addr(const char * );
我用过的
inet_addr(const char * ); 要导入哪个包啊?
const char* cp
);Parameters
cp
[in] Null-terminated character string representing a number expressed in the Internet standard ".'' (dotted) notation.
Return Values
If no error occurs, inet_addr returns an unsigned long value containing a suitable binary representation of the Internet address given. If the string in the cp parameter does not contain a legitimate Internet address, for example if a portion of an "a.b.c.d" address exceeds 255, then inet_addr returns the value INADDR_NONE.Header: Declared in Winsock2.h.
Library: Use Ws2_32.lib.
应该是不可以的
LPSTR as = "192.168.0.2s";
unsigned long aa = inet_addr((char *)as);
LPSTR bs = "192.168.1223.3";
unsigned long bb = inet_addr((char *)bs);
LPSTR cs = "126.123.25.2";
unsigned long cc = inet_addr((char *)cs);
我这里他们都等于0XFFFFFFFF