Problema com InetAndress

8 respostas
C
System.out.println("from " + socket.getInetAddress().getHostName() + ": " + x);
				
				String ip = ""+socket.getInetAddress();
				System.out.println(ip);
				String strIP=ip.substring(1,ip.length());
				System.out.println(strIP);

O problema é o seguinte quando ele executa isso

String ip = “”+socket.getInetAddress();

ele retorna para mim na hora de imprimir

pchome/200.000.00.00

ele nao teria que retornar so o IP???

8 Respostas

T

Não senhor. Veja o javadoc de java.net.InetAddress.toString().

Converts this IP address to a String. The string returned is of the form: hostname / literal IP address. If the host name is unresolved, no reverse name service loopup is performed. The hostname part will be represented by an empty string.

C

uhm ta certo entao, qual eu deveria usar???

T

Pode usar esse mesmo, se quiser. Só pegar o que vem depois da barra (nada que indexOf e substring não resolvam)

C

int sd=ip.indexOf("/");
String strIP=ip.substring(sd+1,ip.length());

fiz isso aqui, no meu caso retornou soh o ipo mesmo!!

mas se for de outras maquinas vai funcionar?

T

Mr. Big Raven,

É o seguinte.
Pegue o resultado de socket.getInetAddress().
Chame toString().
Você vai ter uma string que está no formato “bla bla bla/ble ble ble”.
Você então vai pegar e achar a posição da barra, com indexOf.
Você quer apenas o que vem depois da barra, pelo que eu estou achando.
Então veja como é que tem de usar o resultado de indexOf e passar para o método substring.
Não é difícil mas você tem de pensar um pouco.
Outra forma é você usar String.split (é mais fácil mas tem de tomar um pouco de cuidado).

C

blz valeu kra, consegui!!

E

Acho que se você fizesse:

InetAddress inetAddress = socket.getInetAddress();
String ip = inetAddress.getHostAddress();
System.out.println( ip );

iria retornar só o ip, se você quisesse o nome do host, faria:

String hostName = inetAddress.getHostName();
E

acho que nem adianta mais… eheheheh :smiley:

Criado 18 de abril de 2005
Ultima resposta 18 de abr. de 2005
Respostas 8
Participantes 3