网络地址转换

来源:互联网 发布:网页源代码 隐藏数据 编辑:程序博客网 时间:2024/06/10 19:00

 C++网络编程经常会涉及到类似192.168.1.218到unsigned long 的转换

1,采用api处理:

char szHost[20] = "192.168.1.218";
 unsigned long lIP=inet_addr(szHost);
 
 in_addr in;
 in.S_un.S_addr=lIP; 
 long ll=ntohl(lIP);
 
 char* chHost=inet_ntoa(in);    //应该得到192.168.1.218

 

2,利用ACE处理


 ACE_INET_Addr addr (10003,"192.168.1.218"); //或者ACE_INET_Addr addr (10003,ll);

 unsigned long lllIPNet=addr.get_ip_address();
 unsigned long lllIP=htonl(lllIPNet);     //这里lllIP应该==lIP
 

 const char* chIP=addr.get_host_addr();  //应该得到192.168.1.218