Em vários blogs e tutoriais tem o famoso código de obter o IP da máquina.
import java.net.*;
public class Ip{
public static void main(String []args){
String host ="";
String endereco = "";
try {
InetAddress myself = InetAddress.getLocalHost();
host = myself.getHostName();
endereco = myself.getHostAddress();
} catch (UnknownHostException ex){
ex.printStackTrace();
}
System.out.println("HostName: "+host+" IP: "+endereco);
}
}
Obtendo no Console a seguinte saída:
HostName: mariojp IP:127.0.0.1
System.out.println("IP:"+InetAddress.getByName("mariojp.local").getHostAddress());
Obtendo no Console a seguinte saída:
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
public class IP {
public static void main(String[] args) throws SocketException {
Enumeration e = NetworkInterface.getNetworkInterfaces();
while (e.hasMoreElements()) {
NetworkInterface i = e.nextElement();
Enumeration ds = i.getInetAddresses();
while (ds.hasMoreElements()) {
InetAddress myself = ds.nextElement();
System.out.println("HostName: " + myself.getHostName() + " IP: " + myself.getHostAddress());
}
}
}
}
Obtendo no Console a seguinte saída:
HostName: fe80:0:0:0:21d:7dff:fe88:4996%2
IP: fe80:0:0:0:21d:7dff:fe88:4996%2HostName: mariojp.local IP: 10.2.1.76
HostName: ip6-localhost IP: 0:0:0:0:0:0:0:1%1
HostName: localhost IP: 127.0.0.1
Retorna todos os HostNames e o IPs de todas as interfaces de REDE da máquina.
Valeu Mário, estava vendo isso hoje. Até mais.
Disponha
acrescentado isto
if (!myself.isLoopbackAddress() && myself.isSiteLocalAddress()) {
myIp = myself.getHostAddress();
}
no while mais interno pega o endereço desejado.
muito bom esse tópico, tem como descobrir outros ips conectados na rede que o meu ip está?
Tem sim