Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 IP 주소를 16진수로 변환하는 프로그램

<시간/>

IP 주소 값으로 입력이 주어지고 작업은 주어진 IP 주소를 16진수로 나타내는 것입니다.

IP 주소란 무엇입니까

IP 주소 또는 인터넷 프로토콜은 네트워크에 연결된 하드웨어를 고유하게 설명하는 고유 번호입니다. 네트워크 및 프로토콜을 통한 인터넷은 연결을 위해 따라야 하는 일련의 규칙 및 규정을 정의합니다. IP 주소만 있으면 시스템이 네트워크를 통해 다른 시스템과 통신할 수 있습니다. 다음과 같은 두 가지 버전의 IP가 있습니다. -

  • IPv4(인터넷 프로토콜 버전 4)
  • IPv6(인터넷 프로토콜 버전 6)

IP 주소는 −

형식의 일련 번호로 표시됩니다.

151.101.65.121

이 변환을 위해 아래 프로그램은 인터넷 작업을 위해 생성된 "arpa/inet.h" 헤더 파일을 사용합니다.

예시

Input-: 127.0.0.1
Ouput-: 0x7f000001
Input-: 172.31.0.2
Output-: 0xac1f0002

알고리즘

Start
Step1-> Declare function to reverse
   void reverse(char* str)
      set int len = 2
      set int r = strlen(str) – 2
      Loop While (len < r)
         call swap(str[len++], str[r++])
         Call swap(str[len++], str[r])
         Set r = r – 3
      End
   End
Step 2-> Declare function to convert IP address to hexadecimal
   void convert(int ip_add)
      declare char str[15]
      call sprintf(str, "0x%08x", ip_add)
      call reverse(str)
      print str
step 3-> In main()
   declare int ip_add = inet_addr("127.0.0.1")
   call convert(ip_add)
Stop

예시

#include <arpa/inet.h>
#include <iostream>
#include <string.h>
using namespace std;
//reverse hexadecimal number
void reverse(char* str) {
   int len = 2;
   int r = strlen(str) - 2;
   while (len < r) {
      swap(str[len++], str[r++]);
      swap(str[len++], str[r]);
      r = r - 3;
   }
}
//Convert IP address to heaxdecimal
void convert(int ip_add) {
   char str[15];
   sprintf(str, "0x%08x", ip_add);
   reverse(str);
   cout << str << "\n";
}
int main() {
   int ip_add = inet_addr("127.0.0.1");
   convert(ip_add);
   return 0;
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다.

0x7f000001