InetAddress.getLocalHost() vs Socket.getLocalAddress() 를 이용하면.. Windows에서는 정상적으로 IP가 출력되지만, Linux에서는 127.0.0.1 이 출력된다. 이는 /etc/hosts 에 설정된 값이 127.0.0.1 ==> localhost 로 되어있는 경우인데, 이 hosts 파일을 수정하지 않으면, 계속 127.0.0.1 만 출력된다. 아래 소스에서는 NetworkInreface를 이용하여.. 이더넷설정중 eth0 의 IP를 꺼내는 방법을 소개하고있다. -------------------------------------------------------------- import java.net.*; import java.util.*; public class GetPublicHostname{ public static void main(String[] args) throws Throwable{ NetworkInterface iface = null; for(Enumeration ifaces = NetworkInterface.getNetworkInterfaces();ifaces.hasMoreElements();){ iface = (NetworkInterface)ifaces.nextElement(); System.out.println("Interface:"+ iface.getDisplayName()); InetAddress ia = null; for(Enumeration ips = iface.getInetAddresses();ips.hasMoreElements();){ ia = (InetAddress)ips.nextElement(); System.out.println(ia.getCanonicalHostName()+" "+ ia.getHostAddress()); } } } } 출처: http://www.jguru.com/faq/view.jsp?EID=790132 |
2011년 5월 18일 수요일
[Java] NetworkInterface를 이용한 IP추출
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기