현재 위치: > 최신 기사 목록> 육각형 IP 주소를 자동으로 변환하는 PHP 스크립트 구현으로 소수 형식으로 변환

육각형 IP 주소를 자동으로 변환하는 PHP 스크립트 구현으로 소수 형식으로 변환

gitbox 2025-05-28

16 진 IP 주소는 무엇입니까?

일반적으로 우리가 보는 IP 주소 형식은 192.168.1.1 과 유사한 점선 소수 형식입니다. 그러나 때로는 IP 주소가 연속 16 진수 문자열로 표시됩니다.

 C0A80101

이것은 실제로 192.168.1.1 의 16 진수 표현입니다.

예를 들어 IP 주소의 1 바이트 (8 비트)를 나타냅니다.

  • C0 = 192

  • A8 = 168

  • 01 = 1

  • 01 = 1

PHP HexDEC 함수를 사용하여 HEX 문자열을 변환하십시오

PHP의 내장 HEXDEC 기능은 HEX 문자열을 10 진수로 변환 할 수 있습니다. 그러나 전체 숫자를 변환하고 16 진 IP 주소를 4 개의 세그먼트로 변환하는 데 직접 사용할 수 없다는 점에 유의해야합니다. 따라서 16 진수를 먼저 두 비트로 분할 한 다음 소수점으로 변환해야합니다.

샘플 PHP 스크립트

다음 스크립트는 PHP를 사용하여 연속 8 비트 육각형 IP 주소를 점선 소수 형식으로 변환하는 방법을 보여줍니다.

 <?php
function hexIpToDecimal($hexIp) {
    // 입력 된 문자열을 대문자로 변환하십시오,통합 형식을 확인하십시오
    $hexIp = strtoupper($hexIp);
    
    // 길이가 올바른지 확인하십시오(IPv4 예 8 16 진)
    if (strlen($hexIp) !== 8) {
        return false; // 입력 형식 오류
    }
    
    $ipParts = [];
    
    // 두 사람마다 하나의 그룹,소수로 변환하십시오
    for ($i = 0; $i < 8; $i += 2) {
        $partHex = substr($hexIp, $i, 2);
        $partDec = hexdec($partHex);
        $ipParts[] = $partDec;
    }
    
    // 점선 형식으로 연결되었습니다
    $decimalIp = implode('.', $ipParts);
    return $decimalIp;
}

// 테스트 예
$hexIp = "C0A80101";
$decimalIp = hexIpToDecimal($hexIp);
echo "16 진IP: $hexIp 전환 후: $decimalIp\n"; 
?>

실행 결과 :

 16 진IP: C0A80101 전환 후: 192.168.1.1

코드 설명

  1. 입력 점검 <br> 이 함수는 먼저 전달 된 16 진 문자열의 길이가 8 비트 (IPv4의 4 바이트에 해당)임을 보장합니다.

  2. 세그먼트 처리 된 처리 <br> substr을 사용하여 한 번에 두 문자를 가져 가서 하나의 바이트를 나타냅니다.

  3. 16 진수를 10 진수로 변환하십시오 <br> HEXDEC 함수를 사용하여 2 자리 육각 문자열을 10 진수로 변환하십시오.

  4. 형식 스 플라이 싱 <br> 전환 된 4 진수 숫자를 도트 번호로 연결하여 공통 점선 소수점 IP 주소를 생성하십시오.


확장 : 분리기가있는 16 진 IP를 처리합니다

C0 : A8 : 01 : 01 과 같이 귀하가 직면 한 16 진 IP 주소가 구분되면 먼저 구분기를 제거한 다음 위의 방법을 사용하여 처리 할 수 ​​있습니다.

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

위의 방법을 통해 PHP의 HEXDEC 함수를 사용하여 16 진로 표시된 IP 주소를 친숙한 소수점 점파 형식으로 쉽게 변환 할 수 있습니다. 이 기사가 도움이되기를 바랍니다!