Como enviar uma solicitação HTTP para um determinado nome de domínio para um endereço IP específico?

4

Para fins de teste, é possível contornar o DNS e enviar uma solicitação HTTP para um determinado nome de domínio para um endereço IP específico?

Por exemplo, digamos que você esteja criando um site para example.com no servidor 1.1.1.1 .

Sem atualizar os registros DNS reais do domínio (por exemplo, através do registrador ou do provedor de DNS) ou mexendo com DNS localmente (por exemplo, atualizando arquivos de hosts), como você pode testar como 1.1.1.1 responderia a uma solicitação HTTP de example.com ?

    
por iglvzx 21.02.2014 / 02:09

6 respostas

2

Claro, se você fizer isso manualmente é fácil.

Em um prompt de shell: sleep 1; echo GET /some/resource HTTP/1.1; echo host: google.com; echo ''; sleep 10)|tee /dev/tty|telnet 127.0.0.1 80

Isso se conectará ao localhost = 127.0.0.1 na porta http = 80 e solicitará http://google.com/some/resource

Você pode fazer o correspondente em algum programa, é claro. O truque é não depender do navegador ou do componente da Web para analisar o URL e usar essas informações para estabelecer uma conexão.

    
por 29.11.2016 / 17:47
2

Você pode usar o CURL para iniciar uma solicitação ao servidor com um cabeçalho de host personalizado.

curl --header "Host:abc.com" xxxx.xxxx.xxxx.xxxx
    
por 13.06.2017 / 13:16
0

Sim.

Primeiro, você pode emitir a solicitação especificando o IP diretamente, ou seja, http://192.168.99.99/web/path .

Em segundo lugar, cada solicitação de HTTP inclui um Host: de cabeçalho que informa ao servidor HTTP qual domínio deseja alcançar. Isso existe para que vários domínios possam viver em um único IP. Então, se você pode encontrar uma extensão de navegador ou outra ferramenta que permite que você envie uma solicitação e especifique manualmente, você pode fazê-lo.

Eu não o usei, mas algumas pesquisas rápidas revelaram uma extensão Modify Headers do Firefox você pode tentar.

Você pode receber erros de certificado SSL que precisa ignorar, se o site for HTTPS e especificar um IP para o URL, pois ele não terá um nome de domínio para ser comparado ao certificado.

    
por 21.02.2014 / 02:48
0

Existe uma extensão do Google Chrome chamada Overrider de DNS que permitirá a você para habilitar uma substituição de DNS de um URL em uma página. Por exemplo, se eu tivesse um arquivo html local em meu computador que IFRAME d uma url ( http://example.com ), eu poderia usar essa extensão para criar um alias que aponta para 1.1.1.1 .

No entanto, lembre-se de que isso não funcionará na sua barra de endereço. Ele só funcionará nos URLs dentro de uma página. Usar o elemento IFRAME deve funcionar.

    
por 21.02.2014 / 02:48
0

Claro que você pode, você pode fazer isso usando arquivos host. Dependendo do sistema operacional que você está usando, é feito de maneiras ligeiramente diferentes:

Windows

O Windows 10, o Windows 8, o Windows 7 e o Windows Vista usam o Controle de Conta de Usuário (UAC), portanto, o Bloco de Notas deve ser executado como Administrador.

Para o Windows 10 e 8

  1. Pressione a tecla do Windows.
  2. Digite Notepad no campo de pesquisa.
  3. Nos resultados da pesquisa, clique com o botão direito do mouse em Bloco de notas e selecione Executar como administrador.
  4. No Bloco de Notas, abra o seguinte arquivo: c: \ Windows \ System32 \ Drivers \ etc \ hosts
  5. Faça as alterações necessárias no arquivo.
  6. Clique em Arquivo > Salvar para salvar suas alterações.

Para o Windows 7 e o Vista

  1. Clique em Iniciar > Todos os programas > Acessórios.
  2. Clique com o botão direito do mouse no Bloco de notas e selecione Executar como administrador.
  3. Clique em Continuar no Windows e precisa da janela de permissão do seu UAC.
  4. Quando o Bloco de notas for aberto, clique em Arquivo > Aberto.
  5. No campo Nome do arquivo, digite C: \ Windows \ System32 \ Drivers \ etc \ hosts.
  6. Clique em Abrir.
  7. Faça as alterações necessárias no arquivo.
  8. Clique em Arquivo > Salvar para salvar suas alterações.

Linux

  1. Abra uma janela de terminal.
  2. Abra o arquivo hosts em um editor de texto (você pode usar qualquer editor de texto) digitando a seguinte linha: sudo nano /etc/hosts
  3. Digite sua senha de usuário do domínio.
  4. Faça as alterações necessárias no arquivo.
  5. Pressione Control-x.
  6. Quando perguntado se você deseja salvar suas alterações, responda y.

Mac OS X 10.0 a 10.1.5

  1. Abrir / Aplicativos / Utilitários / Gerenciador do NetInfo.
  2. Para permitir a edição do banco de dados NetInfo, clique no cadeado no canto inferior esquerdo da janela.
  3. Digite sua senha de usuário do domínio e clique em OK.
  4. Na segunda coluna da visualização do navegador, selecione o nó denominado máquinas.
  5. A terceira coluna contém entradas para -DHCP-, broadcasthost e localhost. Na terceira coluna, selecione localhost.
  6. No menu Editar, selecione Duplicar. (A maneira mais rápida de criar um nova entrada é duplicar uma existente.)
  7. Um alerta de confirmação é exibido.
  8. Clique em Duplicar.
  9. Uma nova entrada chamada cópia localhost é exibida e suas propriedades são mostrado abaixo da visualização do navegador.
  10. Clique duas vezes no valor da propriedade ip_address e digite o IP  endereço do outro computador.
  11. Clique duas vezes no valor da propriedade name e insira o nome do host  você quer para o outro computador.
  12. Clique na propriedade de veiculações e selecione Excluir no menu Editar.  No menu Arquivo, selecione Salvar.
  13. Um alerta de confirmação é exibido. Clique em Atualizar esta cópia.

Repita as etapas de 6 a 12 para cada entrada de host adicional que você deseja adicionar. No menu Gerenciador do NetInfo, selecione Sair.

Mac OS X 10.6 a 10.12

  1. Abra os aplicativos > Utilitários > Terminal.
  2. Abra o arquivo hosts digitando a seguinte linha na janela do terminal:
  3. sudo nano / privado / etc / hosts
  4. Digite sua senha de usuário do domínio quando solicitado.
  5. Edite o arquivo de hosts.
  6. O arquivo contém alguns comentários (linhas iniciando com o símbolo #), e alguns mapeamentos de nome de host padrão (por exemplo, 127.0.0.1 - local hospedeiro). Adicione seus novos mapeamentos após os mapeamentos padrão.
  7. Salve o arquivo hosts pressionando Control + x e respondendo y.
  8. Faça as alterações entrarem em vigor liberando o cache do DNS com o comando a seguir: dscacheutil -flushcache
por 23.03.2017 / 00:28
-1

Não.

Não estou familiarizado com essa extensão do Chrome, mas usar endereços IP em vez dos registros DNS que resolvem isso não é um meio confiável de testar o comportamento do site. Por exemplo, a especificação HTTP / 1.1 introduziu a ideia de um cabeçalho Host :, isso permitiu hospedagem virtual (vários sites compartilhando um endereço IP, e eu diria uma explosão consequente em hospedagem de site barata). Meu ponto é que, se você usar um endereço IP em vez de um FQDN, seu navegador (com exceção da extensão do Google Chrome e similares) não gerará os mesmos cabeçalhos com um registro DNS publicado, por isso não é um teste real na realidade mundo.

A maneira "típica" de fazer isso é exatamente o que você está tentando evitar: arquivos hosts, "split" DNS, etc.

    
por 21.02.2014 / 02:57