Dependendo da configuração do firewall, você pode usar um ping TCP SYN.
Efetivamente, você obterá um ACK de volta se estiver escutando na porta ou um RST, se não estiver.
Existem várias ferramentas que fazem isso, especialmente NMAP
Estou usando o comando ping para saber se a máquina remota está ativada ou não. Mas o problema é que o comando ping (ICMP Packect) não é aceito na máquina remota se o firewall estiver ligado e se a máquina remota estiver desligada porque o status do ping retorna falso. Existe alguma maneira alternativa de saber se a máquina remota está ou não assumindo que o firewall está ativado?
Dependendo da configuração do firewall, você pode usar um ping TCP SYN.
Efetivamente, você obterá um ACK de volta se estiver escutando na porta ou um RST, se não estiver.
Existem várias ferramentas que fazem isso, especialmente NMAP
Se o outro computador estiver na mesma rede local, ele ainda deverá responder às solicitações ARP, mesmo que esteja bloqueando ping
. Nesse caso, você pode tentar usar algo como arping
. Mais informações sobre a Wikipédia .
Em uma rede maior, não consigo pensar em uma maneira confiável de saber se um host está ligado ou não à falta de cooperação.
Se o firewall for bom, não há como verificar isso. O ponto principal de um firewall é que, se o pacote que você enviar for rejeitado, você não obterá nenhuma pista sobre o estado do servidor de recebimento: a idéia central é que você não consegue dizer entre o caso de
1) o servidor não está lá e
2) o firewall bloqueou você.
Para saber se o servidor remoto está ligado, você deve decidir em alguma porta na qual o servidor irá responder e fazer um buraco apropriado no firewall.
(ainda não há reputação suficiente para comentar, por isso estou adicionando isso como resposta)
Esta é uma razão que eu geralmente encorajo a permissão de pelo menos alguns tipos icmp (echo request, echo reply e time exceeded em todas as máquinas, porque deixar o ICMP não está realmente escondendo a existência da máquina de qualquer forma pode para máquinas atrás dele, embora), mas principalmente dificulta o monitoramento e a depuração de rede.
Se você é realmente paranóico com ataques de pingflood, algum tipo de limitação de taxa pode fazer (ou filtra apenas no lado da borda da rede).
Observe que não responder a uma solicitação de eco não é um sinal de que a máquina não está lá, que geralmente é sinalizada pelo último roteador respondendo com um tipo de pacote ICMP 3, código 1 (host inacessível), portanto, fazer uma máquina realmente invisível é mais complicado do que parece.
Quanto à pergunta original, uma das varreduras do nmap geralmente faz o trabalho (mais do que uma varredura chamada "tcp ping").
A maneira que faço isso é iniciar uma conexão TCP com uma porta aberta conhecida. Se for um servidor da Web, ele responderá na porta 80 (ou 443). Uma resposta positiva indica que a máquina está viva. Uma resposta negativa indica um dos muitos problemas possíveis, como conectividade através da rede, configuração de firewall incorreta, falha de serviço ou queda da máquina.
Se você estiver configurando o monitoramento e quiser apenas saber quando prestar atenção na máquina, confie apenas em uma porta de abertura conhecida. Pelo menos se ele parar de responder, você saberá que algo está acontecendo.
A maioria dos firewalls modernos também pode interceptar o SYN-SYN / ACK-ACK inicial para impedir ataques do tipo esgotamento de recursos (ou seja, enviar vários SYNs forçando o servidor a colocar uma entrada em sua tabela de conexão e nunca continuar a conexão) - para tornar esse tipo de ataque mais agressivo, essas conexões podem ser de endereços IP falsificados).
Você pode precisar abrir uma conexão e realmente solicitar dados para ter mais certeza de que o servidor está realmente ativo (é claro que servidores de cache e outras coisas poderiam frustrar até mesmo isso).
Que tipo de servidor é esse? O tipo de conexão pode ser orientado para o serviço oferecido pelo servidor. Ferramentas como o nmap ( link ) podem solicitar o cabeçalho http, por exemplo.
Esta não é uma pergunta do Windows? O Windows é o único SO que é retardado o suficiente para bloquear o ping por padrão.
Eu realmente odeio isso. Eu me pergunto quantos homens-anos foram desperdiçados por pessoas solucionando problemas na rede apenas porque o ping não funcionava.
Você pode fazer um Ping ARP. Mesmo que o firewall esteja impedindo a ocorrência de pings ICMP, o Ping ARP basicamente pergunta se alguém está usando o IP específico. O ARP é usado para garantir que não haja colisões de IP, portanto, a máquina precisa responder. Quando essa ferramenta estiver aqui .
Tags networking monitoring icmp