C++,IP地址整数和字符串形式的互相转换方法

解析转换程序通信消息体中IP地址时,经常会将其在整数和字符串两种方式转换,于是将转换方式总结一下。

#include <iostream>
#include <arpa/inet.h>
#include <stdio.h>
using namespace std;
int main()
{
  //将整数IP转换为字符串表示的IP
  int dwAddr = inet_addr("127.0.0.1");
  cout << "NO1 :IP的整数形式 " << dwAddr <<endl;
 
  //将字符串形式的IP转换为整数形式表示,方法一
  struct in_addr inAddr;
  inAddr.s_addr = dwAddr;
  cout << "NO2: IP的字符串形式 " <<  inet_ntoa(inAddr) << endl;
 
  //将字符串形式的IP转换为整数形式表示,方法二
  unsigned char *pch = (unsigned char*)&dwAddr;
  char szIPAddr[64] = {0};
  sprintf(szIPAddr, "%d.%d.%d.%d", *pch, *(pch+1), *(pch+2),*(pch+3));
  cout << "NO3: IP的字符串形式 " << szIPAddr << endl;
 
   return 1;
}

打印输出:

NO1 :IP的整数形式 16777343
NO2: IP的字符串形式 127.0.0.1
NO3: IP的字符串形式 127.0.0.1

猜你喜欢

转载自blog.csdn.net/qq_42609381/article/details/81114616