Programa para convertir direcciones IP a hexadecimales

Dada una dirección IP y la tarea es cambiar la dirección IP equivalente al valor hexadecimal.
Ejemplos:

Input  : 127.0.0.1
Output : 0x7f000001

Input  : 172.31.0.2
Output : 0xac1f0002

Explicación sobre
el uso de la función Biblioteca para convertir la dirección IP en el valor hexadecimal que usamos en el archivo de encabezado «arpa/inet.h» . La función inet_addr() convertirá la string en la notación decimal con puntos estándar de IPv4, en un valor entero adecuado para usar como una dirección de Internet.

C++

// C++ program for IP to
// hexadecimal conversion
#include <arpa/inet.h>
#include <iostream>
#include <string.h>
using namespace std;
  
// function for reverse hexadecimal number
void reverse(char* str)
{
    // l for swap with index 2
    int l = 2;
    int r = strlen(str) - 2;
  
    // swap with in two-2 pair
    while (l < r) {
        swap(str[l++], str[r++]);
        swap(str[l++], str[r]);
        r = r - 3;
    }
}
  
// function to conversion and print
// the hexadecimal value
void ipToHexa(int addr)
{
    char str[15];
  
    // convert integer to string for reverse
    sprintf(str, "0x%08x", addr);
  
    // reverse for get actual hexadecimal
    // number without reverse it will
    // print 0x0100007f for 127.0.0.1
    reverse(str);
  
    // print string
    cout << str << "\n";
}
  
// Driver code
int main()
{
    // The inet_addr() function  convert  string
    // in to standard IPv4 dotted decimal notation
    int addr = inet_addr("127.0.0.1");
  
    ipToHexa(addr);
  
    return 0;
}

Publicación traducida automáticamente

Artículo escrito por ajay0007 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *