2014-09-15 2 views
-3

내가 원하는 것은 PHP에서 IPV4 주소 만 보여주는 간단한 페이지를 만드는 것입니다.자신의 브라우저 창에서 누군가 공개 IPV4 주소 만 표시하는 간단한 웹 페이지를 만들어야합니다.

이 사이트는 "http://myexternalip.com/raw"처럼 보이지만 IPV6 만 표시되지는 않습니다.

이 사이트는 내 IPV6 주소를 표시하며, Whatsmyip.com이 내 IPv4를 표시하기 때문에 둘 다 작동한다는 것을 알고 있습니다.

도움을 주신 모든 분들께 감사드립니다.

+0

내가 감사의 말씀을 전합니다 도움을 기꺼이주는 사람들은 질문에 대답하고, 사람들은 리뷰를 포기할 이유는 무엇입니까? 검토를 거치지 않고 의견을 남기지 않고, 단지 스팸 메일 일뿐입니다. – Ajster1989

답변

0

방문자/클라이언트의 IP 주소를 얻는 가장 간단한 방법은 $ _SERVER [ 'REMOTE_ADDR'] 또는 $ _SERVER [ 'REMOTE_HOST'] 변수를 사용하는 것입니다.

그러나 때로는 방문자의 올바른 IP 주소를 반환하지 않기 때문에 다른 서버 변수를 사용하여 IP 주소를 가져올 수 있습니다.

아래의 두 기능은 값을 검색하는 방법과 위치의 차이와 동일합니다.

getenv()는 PHP에서 환경 변수 값을 가져 오는 데 사용됩니다.

// Function to get the client IP address 
function get_client_ip() { 
    $ipaddress = ''; 
    if (getenv('HTTP_CLIENT_IP')) 
     $ipaddress = getenv('HTTP_CLIENT_IP'); 
    else if(getenv('HTTP_X_FORWARDED_FOR')) 
     $ipaddress = getenv('HTTP_X_FORWARDED_FOR'); 
    else if(getenv('HTTP_X_FORWARDED')) 
     $ipaddress = getenv('HTTP_X_FORWARDED'); 
    else if(getenv('HTTP_FORWARDED_FOR')) 
     $ipaddress = getenv('HTTP_FORWARDED_FOR'); 
    else if(getenv('HTTP_FORWARDED')) 
     $ipaddress = getenv('HTTP_FORWARDED'); 
    else if(getenv('REMOTE_ADDR')) 
     $ipaddress = getenv('REMOTE_ADDR'); 
    else 
     $ipaddress = 'UNKNOWN'; 
    return $ipaddress; 
} 

$ _SERVER는 웹 서버에서 생성 한 서버 변수가 포함 된 배열입니다.

// Function to get the client IP address 
function get_client_ip() { 
    $ipaddress = ''; 
    if ($_SERVER['HTTP_CLIENT_IP']) 
     $ipaddress = $_SERVER['HTTP_CLIENT_IP']; 
    else if($_SERVER['HTTP_X_FORWARDED_FOR']) 
     $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR']; 
    else if($_SERVER['HTTP_X_FORWARDED']) 
     $ipaddress = $_SERVER['HTTP_X_FORWARDED']; 
    else if($_SERVER['HTTP_FORWARDED_FOR']) 
     $ipaddress = $_SERVER['HTTP_FORWARDED_FOR']; 
    else if($_SERVER['HTTP_FORWARDED']) 
     $ipaddress = $_SERVER['HTTP_FORWARDED']; 
    else if($_SERVER['REMOTE_ADDR']) 
     $ipaddress = $_SERVER['REMOTE_ADDR']; 
    else 
     $ipaddress = 'UNKNOWN'; 
    return $ipaddress; 
} 
+0

도움을 주셔서 감사합니다. 나는 더 짧은 버전으로 끝냈습니다. 어쨌든 고마워요! – Ajster1989

0

ip.php 파일을 만들고 다음 코드를 넣어 :

<?php 
if (!empty($_SERVER['HTTP_CLIENT_IP'])) { 
    $ip = $_SERVER['HTTP_CLIENT_IP']; 
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; 
} else { 
    $ip = $_SERVER['REMOTE_ADDR']; 
} 
echo $ip; 

내 대답은 비슷한 질문이 대답을 기반으로합니다 https://stackoverflow.com/a/55790/326016

+0

이것은 내가 찾고있는 단순하고 완벽한 대답이었다. 만약 내가 그 위로 화살을 10 번 칠 수 있었다면! 감사! – Ajster1989