O que é um endereço IP externo confiável para executar ping para verificar se a Internet está disponível? [fechadas]


53

Existe algum servidor sempre ativo, que eu possa configurar para executar ping no modo automático para detectar que a Internet está disponível? Gosta do Google ou algo assim? Pode ser 8.8.8.8?

Minha situação específica é que estou usando um roteador WAN duplo. Cada WAN está conectada a um dos ISPs. Quando meu dinheiro termina em um ISP, ele não está bloqueando o canal. Em vez disso, ele redireciona para uma página de aviso. Portanto, o roteador acha que a Internet está ligada, porque os dados estão sendo transportados. Outra opção para este roteador é executar ping em algum endereço para verificar se a Internet está ligada.

Será que, se executar o ping 8.8.8.8, não serei banido pelo Google por uso inadequado? Eu suspeito que o Google possa ter algumas cotas. Se eu fizer ping nos servidores de nome com muita frequência, às vezes recebo rejeições de DNS.


11
Eu sugiro que você teste o que realmente deseja. Quando você diz "Internet está disponível", o que você quer dizer?
David Schwartz

11
@DavidSchwartz ele quer dizer que a internet não está disponível. Se você deseja um teste específico, grande parte será baseada na WAN, portanto não há uma opção para testar porque está além do limite, mas o ISP saberia.
Barlop

5
ping stackexchange.com;)

6
@ Barlop Isso é engraçado, mas não ajuda. O que significa "a internet não está indisponível"? Se não conseguir acessar o site do Google, "a Internet não está disponível"? Se o DNS funcionar, mas nenhuma página da Web funcionar, a Internet está disponível? O primeiro passo para responder a uma pergunta é entendê-la.
David Schwartz

4
@DavidSchwartz Eu não estava brincando, e considerando que ele está falando sobre executar ping em um IP relacionado ao Google como teste e não em um domínio como www.google.com como teste, ele obviamente significa que, em um caso em que o DNS esteja indisponível, mas tudo o mais está disponível, ele considera que a Internet está disponível. não está disponível. Se você deseja encontrar um ponto de interrogação, seria se um roteador ruim está 'indisponível na Internet', mas obviamente se você poderia fornecer um teste 4 nesse cenário x Se houver WAN disponível ou detalhes específicos, seria mais útil do que apenas fazer um teste para apenas um caso específico ou pior, nenhum caso.
Barlop

Respostas:


56

Tente executar o ping 8.8.8.8, é o servidor DNS principal do Google. Eu sempre faço ping para verificar minha conexão e nunca a encontrei. Como alternativa, você pode tentar o 8.8.4.4, que é o DNS secundário do Google.


3
pingaceita TLDs também. Portanto, ping google.comdeve fazer o truque, caso você não queira se lembrar quádruplo oito.
Johannes Pille 15/06

38
@JohannesPille O ping de um nome de domínio requer um servidor DNS em funcionamento. Portanto, pode falhar se a solicitação de DNS falhar, o que não implica que sua conexão com a Internet esteja realmente inativa.
Jonathan

3
Se o seu servidor de nomes oficial estivesse inoperante, a rede na sua zona não seria muito útil, não é?
Johannes Pille 15/06

6
@JohannesPille você poderia substituir o seu DNS primário para 8.8.8.8 vez do DHCP padrão
aberração catraca

6
@JohannesPille pingnão aceita TLDs. Também não aceita nomes de domínio. É apenas para que a maioria dos nomes de domínio também sejam nomes de host e resolvam para um endereço IP. Assim, as pessoas poderiam digitar em http://example.comvez de http://www.example.com, antes que os navegadores fossem tão inteligentes www.para adicionar um nome de host se ele não funcionasse em primeiro lugar. (Tente ping army.milse você não acredita em mim.)
Dubu

33

Você pode fazer o que a microsoft faz: verifique se

http://www.msftncsi.com/ncsi.txt

retorna "Microsoft NCSI". (Isso verifica se você pode obter os dados corretos de um site, por exemplo, não um portal Wifi ou outra coisa).

Você também pode verificar (por exemplo, ping) que dns.msftncsi.com

aponta para 131.107.255.255 (isso verifica se o DNS está funcionando).

Consulte http://technet.microsoft.com/en-us/library/ee126135

Nota: você também pode visitar http://www.msftconnecttest.com/redirect para acessar um portal cativo, se necessário.


11
+1. IIRC, o Windows também possui uma API para verificar o nível de conectividade da Internet usando esse método.
Navin

7
Por que isso não é mais votado? uma das poucas maneiras realmente boas, especialmente para a pergunta específica. Se o seu ISP redirecionar seu tráfego para uma página de aviso, verificar a resposta como essa é uma das poucas opções confiáveis!
Falco

Não funciona mais #
user2924019

11
O que não funciona? O site ainda retorna o texto da direita, os dns ainda resolve para o IP correto, a documentação ainda retorna a informação certa
Mark Sowul

Para sua informação, você não pode 131.107.255.255executar ping - ele expira. www.msftncsi.compassa a1961.g2.akamai.net, o que resolve 23.59.182.83no momento da redação - não sei se é um IP estático ou não. Embora seja uma boa resposta para a pergunta "qual é um bom URL para testar com segurança minha conexão à Internet" com, por exemplo, cURL ou um navegador, não é um IP que pode ser verificado com um simples pingcomando; portanto, não é uma resposta para essa pergunta específica.
iono

13

Caso específico

Você deseja executar ping no IP fixo "mais próximo" que não pode ser roteado quando o ISP entra no estado de sobrecarga de tráfego. No meu sistema, eu posso emular essa situação falhando na autenticação ADSL. Nesse caso, comparando os resultados de traceroute -ncondições normais e anormais, vejo que o primeiro salto para 8.8.8.8 (ou qualquer site certamente externo) que não responda é 151.6.68.45, que faz parte da infraestrutura do meu ISP.

Usando esse IP como um host "check-alive" (depois de repetir o teste apenas para ter certeza de que está corrigido), posso detectar uma anomalia no ISP sem obter um falso positivo, caso o ADSL esteja OK, mas o roteamento do ISP apresenta problemas .

É claro que eu poderia usar o 8.8.8.8 de propósito , argumentando que, se não conseguir acessar a infraestrutura do Google, não me importo com o motivo , mas também com o roteador de backup.

Caso Geral

"Internet está disponível" é uma coisa muito mais complicada do que simplesmente "É 8.8.8.8 (ou outro IP) acessível".

Para uma verificação rápida, suja e nem sempre confiável, executar o ping 8.8.8.8 é bom. Mas, como você usa um IP numérico em vez de um nome de domínio, já percebeu que pode ter conectividade IP e ainda "sem Internet" devido a problemas de DNS.

Um diagnóstico completo teria que começar perto do seu PC.

  • consulte a configuração da rede local e recupere o gateway e o servidor DNS.
  • execute ping no gateway. Deve ser alcançável. Caso contrário, há um problema local.
  • executar um traceroute com TTL curto (na verdade, um traceroute TCP como o fornecido pelo hping é melhor) de um endereço certamente externo, 8.8.8.8 está bom.
  • Você deseja ver que, após o seu gateway, alguns nós extras estão respondendo.

Por exemplo, no Windows XP em casa, tenho:

 1    <1 ms    <1 ms    <1 ms  192.168.4.200   -- (constant) Home Linux box (gateway)
 2    <1 ms    <1 ms    <1 ms  192.168.0.1     -- (constant) ADSL modem
 3     *        *        *     *               -- WAN interface, always fails; expected
 4     *        6 ms     6 ms  151.6.64.30     -- (varies) ISP gateway

Agora tente executar ping no DNS. Deve ser alcançável. Melhor ainda, execute uma verificação simples de DNS. Para evitar caches de DNS, às vezes uso um domínio que responde a todas as consultas, não importa o quê. Então por exemplo

$ host randomasdfdsasdqwerty987667.godaddy.com
randomasdfdsasdqwerty987667.godaddy.com has address 97.74.104.201

enquanto o servidor DNS não for confiável, a mesma consulta poderá retornar o endereço do portal cativo para wifi

$ host randomasdfdsasdqwerty987667.godaddy.com
captiveportal.homenet has address 192.168.4.200

ou 127.0.0.1, ou mesmo um erro.

No caso de falhas no DNS, posso tentar um traceroute do endereço IP do DNS (ou um DNS diferente, como o do OpenDNS). Isso não só me diz se o problema é o DNS ou o ISP, como também me permite contornar a interrupção.

Se tudo correr bem neste momento, sei que a conexão está funcionando corretamente, em geral; ainda pode falhar em alguns sites. Tudo o que eu preciso agora é de isup.meestar acordado :-), depois checando

http://www.isup.me/www.google.com
http://www.isup.me/mail.google.com

ou um site como o Down Detector me manterá informado sobre o "clima da Internet".

Na verdade, no meu servidor doméstico, há um cache do Squid e a página de erro contém os últimos dados recuperados com sucesso das estatísticas do site, portanto, posso ver algo como

                Google.com is not reachable

                STORM ALERT: 12 out of 14 sites are unreachable!

assim como aconteceu nesta última sexta-feira aqui na Itália.


Se você pode executar ping 8.8.8.8, basta mudar o seu servidor DNS para que assim que os problemas ISP DNS não importa
Zeb McCorkle

2
Sim, mas você deve fazer isso somente depois de verificar se os problemas são realmente baseados em DNS. Existem outros tipos de problemas e eles podem deixar o roteamento para 8.8.8.8 (ou o protocolo ICMP) intacto enquanto destrói outra coisa. Por outro lado, a falha no ping 8.8.8.8 pode não indicar um problema de roteamento ou DNS.
LSerni

6

Como já foi dito, você pode executar ping, por exemplo, no DNS primário do Google para obter uma resposta, mas não depende de um endereço. O endereço (por várias razões) pode ficar inativo por um período de tempo, durante o qual o software relatará "sem conectividade", quando, de fato, a conectividade da sua rede pode não ter problemas. Você deve sempre tentar se comunicar com mais de um endereço para descartar falsos negativos.

Eu escreveria uma função que envia um endereço bip uma vez, se isso falhar, passar para outro (até, digamos, três IPs) e, no momento em que você receber algumas respostas positivas, a função deverá notificar seu aplicativo / script que a Internet está disponível e continuar.


3

Quando trabalhei em uma organização com uma conexão à Internet flakey, tive um script que testava vários servidores "sempre ativos" quanto à conectividade: primeiro o roteador / switch da LAN, depois o servidor de arquivos local, o roteador T1 e o DNS do ISP, então Google. Testei os dois últimos como endereços numéricos e como domínios, para verificar os problemas de DNS versus o ping em si. Se algum dos pings falhava com muita frequência, tive uma idéia de onde o problema de conexão à Internet provavelmente existia.

Para o endereço numérico do Google, eu apenas usei um que eu havia adquirido no nslookup anteriormente - nunca encontrei um caso em que ele estava inoperante. Suponho que 8.8.8.8 seria mais simples.

Frequentemente, quando as pessoas ligavam para dizer que a "internet estava inoperante", descobriu-se que apenas o DNS estava inoperante; podemos chamar essas coisas diferentes, mas do ponto de vista dos meus colegas, a internet não estava disponível nos dois casos.



2

Experimente o seu servidor DNS, você precisará dele de qualquer maneira (e a conexão externa do seu ISP pode estar inativa). Realmente depende do que você quer. Se você precisar acessar o serviço específico de s, verifique-o.


Isso é válido apenas se você souber que o servidor DNS dos ISPs está respondendo ao ping. Pode estar funcionando, mas bloqueia o ICMP.
Olli

Esta é a melhor e mais simples resposta, IMO.
Njbair 22/09
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.