Especificar um InetAddress para uma URL Connection
6 respostas
fmachado.dev
Saudações
Tenho um servidor com 8 ips diferentes, e, preciso constantemente solicitar informações em um site que, limita requisições por ip. E minha demanda é maior do que o limite oferecido. Infelizmente eles não tem um plano pago para que eu possa fazer mais requisições.
Então, minha demanda, inicialmente, é atendida com 4 ou 5 ips.
Mas pra isso preciso fazer a solicitação de acordo com o InetAddress (se eu não me engano, representa o IP Address)
Já tentei via Socket mas ele não conecta, e se eu colo a URL no navegador vai
meu código atual é
for(InetAddressinetAddress:Collections.list(inetAddresses)){System.out.println(inetAddress);Stringurl="";// aqui vai a URL//Socket socket = new Socket(url, 5434, inetAddress, 6545);Socketsocket=newSocket(url,5434);InputStreamteste=socket.getInputStream();BufferedReadert=newBufferedReader(newInputStreamReader(teste));Stringlinha="";linha=t.readLine();System.out.println("OI MAE"+linha);}
se alguém tiver alguma idéia fico grato
PS: a URL do google é apenas para exemplificar
abraços
E
Evandro_Contato
Cara fiz um teste aqui e deu certo, olha o exemplo
InetAddressaddress;try{address=InetAddress.getByName("www.google.com");System.out.println(address.getHostName());System.out.println(address.getHostAddress());}catch(UnknownHostExceptione){// TODO Auto-generated catch blocke.printStackTrace();}
valeu Evandro, mas acho que eu não fui muito especifico.
o que eu quero fazer é o seguinte, eu tenho vários IPS no servidor, ou seja, IP da minha rede, e eu gostaria de “escolher” com qual ip eu vou fazer a requisição.
abraços
fmachado.dev
Olha eu mudei meu código, estou tentando de outra maneira,
eu peço desculpas, mas não posso divulgar o host.
esse é o código
for(NetworkInterfacenetint:Collections.list(nets)){System.out.println("\nDisplay name : "+netint.getDisplayName());Enumeration<InetAddress>inetAddresses=netint.getInetAddresses();for(InetAddressinetAddress:Collections.list(inetAddresses)){System.out.println(inetAddress);Stringhost="host aqui";URLurl=newURL(host);SocketAddresssa=newInetSocketAddress(inetAddress,80);Proxyproxy=newProxy(Proxy.Type.HTTP,sa);URLConnectionconn=url.openConnection(proxy);conn.connect();System.out.println("Conectou sem erro.");BufferedReaderreader=newBufferedReader(newInputStreamReader(conn.getInputStream()));// essa é a linha 59, que da erroStringlinha="";linha=t.readLine();System.out.println("TESTE: "+linha);}}