Aktueller Standort: Startseite> Neueste Artikel> Implementieren Sie ein PHP -Skript, das automatisch hexadezimale IP -Adressen in Dezimalformat umwandelt

Implementieren Sie ein PHP -Skript, das automatisch hexadezimale IP -Adressen in Dezimalformat umwandelt

gitbox 2025-05-28

Was ist eine Hexadezimal -IP -Adresse?

Normalerweise ist das IP -Adressformat, das wir sehen, ein gepunktetes Dezimalformat ähnlich wie 192.168.1.1 . Manchmal wird die IP -Adresse jedoch als kontinuierliche hexadezimale Zeichenfolge dargestellt, zum Beispiel:

 C0A80101

Dies ist eigentlich ein hexadezimaler Ausdruck von 192.168.1.1 .

Alle zwei Hexadezimalzahl repräsentiert beispielsweise ein Byte (8 Bit) in der IP -Adresse:

  • C0 = 192

  • A8 = 168

  • 01 = 1

  • 01 = 1

Konvertieren Sie die Hex -Zeichenfolge mithilfe der PHP -HexDEC -Funktion

Die integrierte HexDEC- Funktion von PHP kann Hex-Saiten in Dezimalzahlen umwandeln. Es ist jedoch zu beachten, dass es die Gesamtzahl umwandelt und nicht direkt verwendet werden kann, um die Hexadezimal -IP -Adresse in vier Segmenten umzuwandeln. Daher müssen wir die hexadezimale Zeichenfolge zuerst in zwei Bits aufteilen und sie dann in eine Dezimalzahl umwandeln.

Beispiel PHP -Skripte

Das folgende Skript zeigt, wie eine kontinuierliche 8-Bit-Hexadezimal-IP-Adresse mithilfe von PHP in gepunktetes Dezimalformat konvertiert wird:

 <?php
function hexIpToDecimal($hexIp) {
    // Konvertieren Sie die eingegebene Zeichenfolge in Großbuchstaben,Stellen Sie ein einheitliches Format sicher
    $hexIp = strtoupper($hexIp);
    
    // Überprüfen Sie, ob die Länge korrekt ist(IPv4 Ja 8 Hexadezimal)
    if (strlen($hexIp) !== 8) {
        return false; // Eingabeformatfehler
    }
    
    $ipParts = [];
    
    // Eine Gruppe für jeweils zwei,In Dezimalheit konvertieren
    for ($i = 0; $i < 8; $i += 2) {
        $partHex = substr($hexIp, $i, 2);
        $partDec = hexdec($partHex);
        $ipParts[] = $partDec;
    }
    
    // In gepunktetes Format gespleißt
    $decimalIp = implode('.', $ipParts);
    return $decimalIp;
}

// Testbeispiel
$hexIp = "C0A80101";
$decimalIp = hexIpToDecimal($hexIp);
echo "hexadezimalIP: $hexIp Nach Umwandlung zu: $decimalIp\n"; 
?>

Auslaufergebnisse:

 hexadezimalIP: C0A80101 Nach Umwandlung zu: 192.168.1.1

Code Beschreibung

  1. Eingabeprüfung <br> Die Funktion stellt zunächst sicher, dass die bestandene hexadezimale Zeichenfolge 8 Bits lang ist (entsprechend 4 Bytes IPv4).

  2. Segmentierte Verarbeitung <br> Verwenden Sie Substr , um jeweils zwei Zeichen zu nehmen, um ein Byte darzustellen.

  3. Hexadezimal in Dezimalheit konvertieren <br> Verwenden Sie die HexDEC -Funktion, um eine zweistellige Hex-Zeichenfolge in eine Dezimalzahl umzuwandeln.

  4. Formatspleißen <br> Schließen Sie die konvertierten vier Dezimalzahlen mit Punktnummern an, um gemeinsame gepunktete Dezimal -IP -Adressen zu generieren.


Erweiterung: Hexadezimal -IP mit Separator handhaben

Wenn die Hexadezimal -IP -Adresse, die Sie begegnen, abgrenzt, wie z. B. C0: A8: 01: 01 , können Sie zuerst den Trennzeichen entfernen und dann die obige Methode verwenden, um damit umzugehen:

 $hexIp = str_replace(':', '', 'C0:A8:01:01');
$decimalIp = hexIpToDecimal($hexIp);
echo $decimalIp;  // Ausgabe:192.168.1.1

Mit der obigen Methode können Sie die HexDEC- Funktion von PHP mithilfe der hexadezimalen IP-Adresse problemlos in das bekannte Dezimal-Dot-Teil-Format umwandeln. Hoffe dieser Artikel hilft dir!