라이브러리

[PHP] inet_pton - 사람이 읽을 수 있는 IP 주소를 압축된 in_addr 표현으로 변환합니다.




인터넷 주소(IP) 변환 함수: inet_pton

PHP의 `inet_pton` 함수는 인터넷 주소(IP)를 32비트 또는 128비트 주소로 변환하는 함수입니다. 이 함수는 IPv4와 IPv6 주소를 모두 지원합니다.

IPv4 주소 변환


IPv4 주소는 32비트 주소로 표현되며, 점(.)으로 구분됩니다. 예를 들어, `192.168.1.1`은 32비트 주소로 다음과 같이 표현됩니다.

#hostingforum.kr
php

$ipv4 = "192.168.1.1";

$ipv4_pton = inet_pton($ipv4);

echo bin2hex($ipv4_pton) . "
";



이 코드는 `192.168.1.1`을 32비트 주소로 변환하고, 이 주소를 16진수로 출력합니다.

IPv6 주소 변환


IPv6 주소는 128비트 주소로 표현되며, 콜론(:)으로 구분됩니다. 예를 들어, `2001:0db8:85a3:0000:0000:8a2e:0370:7334`은 128비트 주소로 다음과 같이 표현됩니다.

#hostingforum.kr
php

$ipv6 = "2001:0db8:85a3:0000:0000:8a2e:0370:7334";

$ipv6_pton = inet_pton($ipv6);

echo bin2hex($ipv6_pton) . "
";



이 코드는 `2001:0db8:85a3:0000:0000:8a2e:0370:7334`을 128비트 주소로 변환하고, 이 주소를 16진수로 출력합니다.

주소 변환 결과


`inet_pton` 함수는 변환된 주소를 바이너리 형태로 반환합니다. 이 바이너리 데이터를 16진수로 변환하려면 `bin2hex` 함수를 사용할 수 있습니다.

주소 비교


`inet_pton` 함수는 주소 변환 외에도 주소 비교를 위한 기능을 제공합니다. 예를 들어, 두 주소를 비교하려면 다음과 같이 코드를 작성할 수 있습니다.

#hostingforum.kr
php

$ipv4_1 = "192.168.1.1";

$ipv4_2 = "192.168.1.1";



$ipv4_1_pton = inet_pton($ipv4_1);

$ipv4_2_pton = inet_pton($ipv4_2);



if ($ipv4_1_pton === $ipv4_2_pton) {

    echo "두 주소는 동일합니다.
";

} else {

    echo "두 주소는 다릅니다.
";

}



이 코드는 두 주소를 비교하고, 동일한 주소인지 여부를 출력합니다.

결론


`inet_pton` 함수는 인터넷 주소(IP)를 32비트 또는 128비트 주소로 변환하는 함수입니다. 이 함수는 IPv4와 IPv6 주소를 모두 지원하며, 주소 변환 외에도 주소 비교를 위한 기능을 제공합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 453 페이지

검색

게시물 검색