IP地址格式转换在网络编程中会经常遇到,下面总结一下:
UINT->LPSTR
//将一个具有网络字节序的UINT型IP地址转化为点分十进制的字符串形式的IP
//方法1(很简单,不用解释了)
char *IpToString(char *ip, unsigned long lIp)
{
char octeto[4];
ip[0] = 0;
itoa(lIp & 0xff, octeto, 10);
strcat(ip, octeto);
strcat(ip, ".");
itoa((lIp >> 8) & 0xff, octeto, 10);
strcat(ip, octeto);
strcat(ip, ".");
itoa((lIp >> 16) & 0xff, octeto, 10);
strcat(ip, octeto);
strcat(ip, ".");
itoa((lIp >> 24) & 0xff, octeto, 10);
strcat(ip, octeto);
return ip;
}
//方法2
char * IpToString(char *ip, unsigned long lIp)
{
struct in_addr in; //struct in_addr是IP地址结构体
in.S_un.S_addr=lIp;
ip=inet_ntoa(in); //inet_ntoa功能:将struct in_addr形式的IP地址转化为LPSTR型
return ip;
}
LPSTR->UINT
//将一个点分十进制的字符串形式的IP转化为具有网络字节序的UINT型
unsigned long inet_addr (
const char FAR * cp
);//使用该Win32 API函数即可实现
注意:在使用inet_ntoa和inet_addr函数时要
Header: Declared in winsock2.h.
Import Library: Link with ws2_32.lib.
本博客于即日起(2009.2.26)停止更新,