Dúvida bem complicada

Olá

Estou desenvovendo um programa q precisa sempre analisar o ip de um servidor que sempre esta mudando, pq esse servidor não fica ligado sempre e esse programa seria uma forma de sempre analisar e descobrir o ip novo desse servidor para q assim eu não precise configurar máquina por máquina com o ip novo desse servidor, vou apresentar o problema abaixo:

No momento em que inciar, o programa precisa analisar o arquivo

…\system32\drivers\etc\hosts

Esse arquivo direciona o DNS para um IP especifico (exemplo 127.0.0.1 para localhost) excluir todas as referencias ao SR (SRauthd.SR.com), atualizar o ip dinamico do dns SR.creations.org e atualizar o hosts com esse ip, como por exemplo (201.17.218.168 SRauthd.SR.com), e dessa forma, redirecionar a conexao do cliente para ip do servidor que é no caso SRauthd.SR.com.

exemplo como deve ficar o conteudo do arquivo hosts:

127.0.0.1 localhost
201.17.218.168 SRauthd.SR.com

Bom eu sinceramente não sei nem como começar um código desses, se alguém puder me ajudar serei enternamente grato :slight_smile:

obrigado pela sua atenção.

ps.: os endereço aí são apenas exemplos assim como os ips

Eu não sei se entendi direito, mas pelo que entendi não é muito complexo não. Basta você lê o arquivo.
Para isso dê uma olhada nas class FileReader.

try {
        BufferedReader in = new BufferedReader(new FileReader("infilename"));
        String str;
        while ((str = in.readLine()) != null) {
            //aqui você verifica se a linha lida tem o servidor SRauthd.SR.com , se tiver, você pega o ip (substr)
        }
        in.close();
    } catch (IOException e) {
    }

Falou

hehehe rodolfocoutinho, ta bem humilde hoje hem … vamos fazer logo aquele projeto pow…
deixa eu me desafogar dos outros projetos pra gente começar a fazer aquele.

[quote=“rodolfocoutinho”]Eu não sei se entendi direito, mas pelo que entendi não é muito complexo não. Basta você lê o arquivo.
Para isso dê uma olhada nas class FileReader.

try {
        BufferedReader in = new BufferedReader(new FileReader("infilename"));
        String str;
        while ((str = in.readLine()) != null) {
            //aqui você verifica se a linha lida tem o servidor SRauthd.SR.com , se tiver, você pega o ip (substr)
        }
        in.close();
    } catch (IOException e) {
    }

Falou[/quote]

bom isso ja ajudou muito ^^ brigadao

tipo se vc nao entendeu vo tenta explica denovo de uma maneira acho mais tranquila

Primeiro: o programa pega o IP do endereço SR.creations.org
Segundo: ele verifica se o IP q ele pegou é o mesmo que está referenciado a SRauthd.SR.com dentro do arquivo hosts
terceiro: se estiver tudo ok ele não muda nada, caso o ip do servidor seja diferente, ele pega o IP velho que esta atribuido a SRauthd.SR.com e substitui pelo novo IP do servidor

Espero q tenha entendido ^^

[quote=“rodolfocoutinho”]Eu não sei se entendi direito, mas pelo que entendi não é muito complexo não. Basta você lê o arquivo.
Para isso dê uma olhada nas class FileReader.

try {
        BufferedReader in = new BufferedReader(new FileReader("infilename"));
        String str;
        while ((str = in.readLine()) != null) {
            //aqui você verifica se a linha lida tem o servidor SRauthd.SR.com , se tiver, você pega o ip (substr)
        }
        in.close();
    } catch (IOException e) {
    }

Falou[/quote]

bom isso ja ajudou muito ^^ brigadao

tipo se vc nao entendeu vo tenta explica denovo de uma maneira acho mais tranquila

Primeiro: o programa pega o IP do endereço SR.creations.org
Segundo: ele verifica se o IP q ele pegou é o mesmo que está referenciado a SRauthd.SR.com dentro do arquivo hosts
terceiro: se estiver tudo ok ele não muda nada, caso o ip do servidor seja diferente, ele pega o IP velho que esta atribuido a SRauthd.SR.com e substitui pelo novo IP do servidor

Espero q tenha entendido ^^

[quote=“rodolfocoutinho”]Eu não sei se entendi direito, mas pelo que entendi não é muito complexo não. Basta você lê o arquivo.
Para isso dê uma olhada nas class FileReader.

try {
        BufferedReader in = new BufferedReader(new FileReader("infilename"));
        String str;
        while ((str = in.readLine()) != null) {
            //aqui você verifica se a linha lida tem o servidor SRauthd.SR.com , se tiver, você pega o ip (substr)
        }
        in.close();
    } catch (IOException e) {
    }

Falou[/quote]

tem necessidade de postar 3 vezes a mesma coisa ?

Pra você pegar o ip do servidor, basta você pingar para ele.
Você faz isso assim:


   String ping = "ping www.servidor.com.br"

   Process p = Runtime.getRuntime().exec(ping); //Ele executará o comando ping.

        InputStream in = p.getInputStream();
        int c;
        while ((c = in.read()) != -1) {
            //Aqui vc verifica qual o ip da string que ele irá retornar.
           //Você poderá usar substr para obter o ip
           //Essa string será igual aquela que é mostrada no DOS quando executamos o comando ping.
        }
        in.close();

Para mais de uma olhada nestas classes.

desculpa ter postado 3 vez q aki deu erro q nao havia postado, se algum moderador puder deletar os posts repetido tudo bem.

e vlw ae com esse codigo ja to no caminho mais certo brigadao mais uma vez ^^