当前位置: 主页 > 日志 > 其它 >

IP格式转换

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-02-26 15:27 由 redice 发表在 redice's Blog ,你除了可以发表评论外,还可以转载 “IP格式转换” 日志到你的网站或博客,但是请保留源地址及作者信息,谢谢!!    (尊重他人劳动,你我共同努力)
   
验证(必填):   点击我更换验证码

redice's Blog  is powered by DedeCms |  Theme by Monkeii.Lee |  网站地图 |  本服务器由西安鲲之鹏网络信息技术有限公司友情提供

返回顶部