127.0.0.1은 루프백 어댑터입니다.
해당 질문에 대한 정답이 문제입니다.
편집 : getLocalHost
에 대한 문서 말 :
의 checkConnect 메소드가 로컬 호스트 이름을 불러 -1의 인수로 작업이 있는지, 보안 매니저가 존재하는 경우 허용. 연산이 이 아닌 경우, 루프 백 주소 인 을 나타내는 InetAddress가 반환됩니다.
사용 권한의 변경으로 인해 동작이 변경 될 수 있습니까?
편집 : 나는 모든 가능성을 열거 할 필요가있는 것 같아요. NetworkInterface.getNetworkInterfaces
. 여기에 가상 주소를 표시하지 않는 예는, 그러나 "주"인터페이스 작동 :
import java.net.*;
import java.util.*;
public class Test
{
public static void main(String[] args)
throws Exception // Just for simplicity
{
for (Enumeration<NetworkInterface> ifaces =
NetworkInterface.getNetworkInterfaces();
ifaces.hasMoreElements();)
{
NetworkInterface iface = ifaces.nextElement();
System.out.println(iface.getName() + ":");
for (Enumeration<InetAddress> addresses =
iface.getInetAddresses();
addresses.hasMoreElements();)
{
InetAddress address = addresses.nextElement();
System.out.println(" " + address);
}
}
}
}
(나는 Enumeration<T>
타입이 직접 작업을 얼마나 끔찍한 잊었다!)
다음
은 지금 내 노트북에 결과 :
가
lo:
/127.0.0.1
eth0:
/169.254.148.66
eth1:
eth2:
ppp0:
/10.54.251.111
(나는 그렇게 생각하지 않는다 어떤 상당히 민감한 정보 :
을 멀리주고3210
사용하려는 네트워크 인터페이스를 알고있는 경우 NetworkInterface.getByName(...)
으로 전화 한 다음 해당 인터페이스의 주소를 확인하십시오 (위 코드 참조).
위의 루프에서 NetworkInterface # isLoopback()을 확인하여 루프백을 건너 뛸 수도 있습니다. – omerkudat
IP 주소 앞에 왜 슬래시가 있습니까? –
@ Matías InetAddress 객체의 Java toString은 address.getHostAddress()를 사용하여 점으로 구분 된 숫자 만 가져옵니다. –