2014-01-13 3 views
0

내 컴퓨터의 실제 (게이트웨이 아님) IP 주소를 가져와야하지만 시도한 모든 솔루션이 게이트웨이 IP 주소를 반환하고 있습니다. 예를 들어,이 링크 Get the client IP address using PHP의 모든 제안은 게이트웨이 주소를 리턴합니다. 내 컴퓨터의 실제 IP 주소 (공개)를 얻을 수있는 방법이 있습니까? - PHP 또는 Java 중 하나?실제 컴퓨터의 IP 주소 얻기

+0

어떤 종류의 게이트웨이입니까? 당신이 그것을 제어합니까? 그것을 믿을 수 있습니까? – SLaks

+0

AWS 인스턴스와 같은 것입니까? – Machavity

+0

"내 컴퓨터"라는 IP 주소를 가져야한다고 말하면 "내 컴퓨터"가 PHP 스크립트를 실행하는 컴퓨터입니까? 아니면 웹 브라우저가 PHP 스크립트를 실행하는 서버에 액세스하는 컴퓨터입니까? –

답변

0

들린다. 당신이 그와 같은 식별자 역할을 얻을 수있는 정보의 아무도 조각은 여기에 없다 이유 :

IP 주소 당신이 볼 수있는 IP 주소가 공개 주소가 아닌 장치의 개인 주소입니다 NAT'd 라우터 뒤에 있습니다. MAC는 각 컴퓨터의 각 네트워크 카드의 MAC 주소를 주소

고유이지만, 그 정보는 LAN 세그먼트의 외부에서 사용할 수 없습니다.

IP 주소와 사용자 에이전트와 같은 정보의 조합을 사용하여 주어진 요청이 고유 한 사용자로부터 온 것이라고 추측 할 수 있지만 추측이 가능합니다. 그것을 확신 할 수있는 방법이 없습니다.

사용자의 공용 주소를 얻으려면 $_SERVER['REMOTE_ADDR']을 사용하고 사용자 에이전트를 얻으려면 $_SERVER['USER_AGENT']을 사용하십시오. 이 두 가지 조합이 고유 한 경우 고유 한 사용자가 요청한 것일 가능성이 큽니다.

먼 미래의 만료 날짜 또는 세션 ID가있는 쿠키를 설정하는 또 다른 방법입니다. 그러나이 모든 것은 사용자를 추적해야하는 시간에 달려 있습니다. 사용자가 브라우저를 닫은 후에 추적하고 나중에 다시 반환해야하는 경우 사용자가 추적해야하는 시간에 따라 다릅니다. 유일한 완전한 방법은 그들은 귀하의 사이트에서 인증합니다.

+0

나에게 의미가있다. 감사! – bdfios

1

java의 InetAddress 클래스가 유용 할 수 있습니다.

InetAddress IP=InetAddress.getLocalHost(); 
System.out.println("IP is := "+IP.getHostAddress()); 

출력 : IP는 다음과 같습니다 = 서버에 액세스하는 각 컴퓨터에 대한 고유 식별자를 만들려면 같은 코멘트에서 10.100.95.228