백엔드 개발 PHP 튜토리얼 PHP ip2long에 왜 음수가 있습니까? 어떻게 해결하나요?

PHP ip2long에 왜 음수가 있습니까? 어떻게 해결하나요?

Jul 17, 2020 pm 03:57 PM
php

PHP ip2long에 왜 음수가 있습니까? 어떻게 해결하나요?

php는 IP 주소를 처리하는 ip2long 및 long2ip 방법을 제공합니다.

1.ip2long - IPV4 문자열 인터넷 프로토콜을 디지털 형식으로 변환합니다.

int ip2long ( string $ip_address )
로그인 후 복사

매개변수: ip_address 표준 형식의 주소입니다.

반환 값: IP 주소의 변환된 숫자를 반환하거나 ip_address가 잘못된 경우 FALSE를 반환합니다.

2, long2ip - 숫자 형식을 IPV4 인터넷 프로토콜의 문자열로 변환합니다.

string long2ip ( string $proper_address )
로그인 후 복사

매개변수: proper_address 긴 정수의 올바른 주소 표현입니다.

반환 값: 인터넷 주소를 문자열로 반환합니다.

3. Usage

$ip = '10.1.1.1';
$ip_long = ip2long($ip);
echo $ip_long.PHP_EOL; // 167837953
echo long2ip($ip_long); // 10.1.1.1
로그인 후 복사

4. 음수가 발생하는 이유와 해결 방법

IP 주소가 상대적으로 크면 ip2long에 음수가 표시됩니다:

$ip = '192.168.101.100';
$ip_long = ip2long($ip);
echo $ip_long.PHP_EOL; // -1062705820
echo long2ip($ip_long); // 192.168.101.100
로그인 후 복사

원인 설명:

IPv4는 서명되지 않음을 사용합니다. 32비트 주소이므로 최대 2의 32승 - 1(4294967295) 주소가 있습니다. 소수점 4자리로 구분하여 십진수를 씁니다.

A.B.C.D로 표시됩니다(예: 192.168.100.100).

IPv4 주소의 각 10진수는 0부터 255까지의 부호 없는 바이트입니다. IPv4 주소를 부호 없는 숫자로 변환한다는 것은 실제로 각 10진수를 해당 8비트에 배치하는 것을 의미합니다. 4바이트 부호 없는 정수를 형성합니다. 192.168.100.100, 상위 8자리는 192,168, 하위 8자리는 100,100입니다.

해결책:

출력할 때 %u를 사용하여 부호 없는 정수로 형식을 지정하세요.

$ip = '192.168.101.100';
$ip_long = sprintf('%u',ip2long($ip));
echo $ip_long.PHP_EOL; // 3232261476 
echo long2ip($ip_long); // 192.168.101.100
로그인 후 복사

추천 관련 튜토리얼: "PHP Tutorial"

위 내용은 PHP ip2long에 왜 음수가 있습니까? 어떻게 해결하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드

CakePHP 날짜 및 시간 CakePHP 날짜 및 시간 Sep 10, 2024 pm 05:27 PM

CakePHP 날짜 및 시간

CakePHP 프로젝트 구성 CakePHP 프로젝트 구성 Sep 10, 2024 pm 05:25 PM

CakePHP 프로젝트 구성

CakePHP 파일 업로드 CakePHP 파일 업로드 Sep 10, 2024 pm 05:27 PM

CakePHP 파일 업로드

CakePHP 라우팅 CakePHP 라우팅 Sep 10, 2024 pm 05:25 PM

CakePHP 라우팅

CakePHP 토론 CakePHP 토론 Sep 10, 2024 pm 05:28 PM

CakePHP 토론

CakePHP 빠른 가이드 CakePHP 빠른 가이드 Sep 10, 2024 pm 05:27 PM

CakePHP 빠른 가이드

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법

See all articles