본문 바로가기
JAVA

[ JAVA ] Linux 에서 java 로 local ip 알아 내기

by 정윤재 2013. 6. 1.

ip4 기반의 ip 를 테스트 하였고 ip6 는 테스트 해보지 않았습니다.

 

소스는 아래와 같습니다.

 

import java.net.InetAddress;

import java.net.NetworkInterface;

import java.net.SocketException;

import java.util.Enumeration;

 

public class IpTest{

 

public static void main(String[] args){

 

IpTest ipTest = new IpTest();

 

System.out.println(ipTest.getLocalServerIp());

 

 

}

 

 

private String getLocalServerIp(){

 

 

String ip = "";

 

try{

 

Enumeration en = NetworkInterface.getNetworkInterfaces();

 

while(en.hasMoreElements()){

 

NetworkInterface ni = (NetworkInterface)en.nextElement();

 

 

Enumeration inetAddresses = ni.getInetAddresses();

 

 

while(inetAddresses.hasMoreElements()){

 

 

InetAddress ia = (InetAddress)inetAddresses.nextElement();

 

if(ia.getHostAddress() != null && ia.getHostAddress().indexOf(".") != -1){

 

byte[] address = ia.getAddress();

 

if(address[0] == 127) continue;

 

ip = ia.getHostAddress();

 

break;

 

}

 

 

}

 

if(ip.length()>0){

 

 

break;

}

 

 

}

 

}catch(Exception e){

 

e.printStackTrace();

 

}

 

return ip;

 

}

 

}

 
 
=========================
 
이렇게 하면 결과는
 
 [root@centos-server ~]# java IpTest
10.211.55.5
[root@centos-server ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1C:42:26:F1:C6  
          inet addr:10.211.55.5  Bcast:10.211.55.255  Mask:255.255.255.0
          inet6 addr: fdb2:2c26:f4e4:0:21c:42ff:fe26:f1c6/64 Scope:Global
          inet6 addr: fe80::21c:42ff:fe26:f1c6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:73368 errors:0 dropped:0 overruns:0 frame:0
          TX packets:38389 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:108460695 (103.4 MiB)  TX bytes:2238786 (2.1 MiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:480 (480.0 b)  TX bytes:480 (480.0 b) 

 


댓글