Não sem jailbreak. Uma vez desbloqueado, será o mesmo que qualquer outro sistema Unix / BSD. Eu presumo que não tenha feito isso antes.
Jasarien
1
Imagine se qualquer aplicativo pudesse alterar a associação entre nomes de host e seus IPs legítimos.
Jano
2
@jano Presumivelmente, esse problema agora existe com aplicativos na Mac App Store. Isso é resolvido pelo OSX que exige uma senha antes de editar o arquivo hosts e também, presumivelmente, pelo procedimento de verificação de aplicativos da Apple.
Danyal Aytekin,
3
@Jano: O Microsoft Windows permite isso agora e causa 0 problemas. Você só precisa ter permissões de administrador. E há razões legítimas para querer modificar um arquivo hosts (todas relacionadas a obter coisas sem um servidor DNS ou então lidar com problemas de VPN).
Josh Mouch
Respostas:
46
Não. Os aplicativos só podem modificar arquivos dentro do diretório de documentos, em sua própria sandbox. Isso é para segurança e facilidade de instalação / desinstalação. Portanto, você só poderia fazer isso em um dispositivo desbloqueado.
Apenas na sandbox, mas não apenas no diretório de documentos (consulte Guia de programação de aplicativos iOS> Tempo de execução do aplicativo> Sistema de arquivos).
Jano
55
A resposta anterior está correta, mas se o efeito que você está procurando é redirecionar o tráfego HTTP de um domínio para outro IP, existe uma maneira.
Uma vez que tecnicamente não está respondendo à sua pergunta, eu perguntei e respondi aqui:
Não, você não pode alterar o arquivo host do iPad (sem jailbreak), mas pode contornar.
Aqui está o meu cenário:
Mac OS X, com IP 192.168.2.1, executando um aplicativo da web
iPad, o dispositivo que você gostaria de testar o aplicativo da web
Charles (para Mac), ativa o proxy HTTP para o seu iPad
Vou testar o aplicativo da web em execução no meu Mac via iPad, mas não consigo acessar diretamente.
A solução funciona para mim:
Em primeiro lugar, certifique-se de que seu servidor e iPad estão na mesma rede local.
Em seguida, configure o proxy Charles, no menu "Proxy> Configurações de proxy ...", preencha Port(principalmente 8888) e alterne Enable transparent HTTP proxying.
Configure a configuração de proxy no iPad.
Agora você pode visitar seu aplicativo da web no iPad.
Claro que você pode usar outras ferramentas de proxy, como Squid ou Varnish no Linux, ou fiddler no Wondows.
Não responde à pergunta ... mas esta é uma solução excelente, fácil de implementar e facilmente alternável para os fins para os quais a maioria das pessoas gostaria de editar o arquivo hosts.
Matt Kenefick
Solução incrível! Limpo e fácil de implementar. Eu uso linux como meu sistema operacional para minha estação de trabalho, então usei o tinyproxy e o proxy funciona muito bem com meu iPhone. Obrigado cara!
Edenshaw
Não funciona na versão mais recente do iOS devido a problemas de segurança, talvez, pode ser mais fácil com um NodeJsmódulo de filternet
vanduc1102
1
"Agora você pode visitar seu aplicativo da web no iPad" - mas como? Se meu aplicativo só funciona em "myapp.dev.domain.com", como o Ipad resolve o nome. É aqui que o arquivo host entra, e suspeito que o ponto da questão
Greg Woods
@GregWoods eu tenho uma configuração semelhante e funcionou para mim visitando 'myapp.env.domain.com', mas só depois de tentar algumas vezes
RenaissanceProgrammer
6
A maneira mais fácil de fazer isso é rodar um simulador de iPad usando XCode e, em seguida, adicionar uma entrada no arquivo hosts (/ etc / hosts) no sistema host para apontar para seu site de teste.
A pergunta é sobre o dispositivo, não o simulador.
Janak Nirmal
5
@JanakNirmal Ainda uma resposta útil.
Simon
6
Eu precisava da mesma funcionalidade, e fazer o jailbreak é impossível. Uma solução é hospedar-se no servidor DNS ( MaraDNS ), acessar as configurações do wi-fi no ipad / telefone e adicionar o servidor DNS personalizado.
Todo o processo demorou apenas 10 minutos e funciona!
1) Faça o download do MaraDNS
2) Executar mkSecretTxt.execomo administrador
3) Modificar mararcarquivo, o meu é:
ipv4_bind_addresses ="put your public IP Here"
timestamp_type =2
random_seed_file ="secret.txt"
csv2 ={}
csv2["Simple.Example.com."]="example.configuration"
Adicione o arquivo chamado " example.configuration" na mesma pasta onde run_maradns.batestá.
todas as respostas aqui presumem que o OP deseja farejar o tráfego HTTP, embora esta seja a única resposta real que se concentra em falsificar a resolução DNS (como modificar o arquivo de hosts)
Filipe Pina
5
Sim, você pode editar o arquivo hosts do iPad, mas precisa ter o jailbreak. Depois de fazer isso, baixe o Cydia (mercado de aplicativos) e obtenha o iFile. O arquivo hosts está localizado em "/ etc / hosts".
Eu sei que já faz um tempo que isso foi postado, mas com o iOS 7.1, algumas coisas mudaram.
Até agora, se você estiver desenvolvendo um aplicativo, você DEVE ter um certificado SSL válido reconhecido pela Apple, caso contrário, você receberá uma mensagem de erro em seu iDevice. Não há mais certificados autoassinados. Veja aqui uma lista:
Além disso, se você estiver aqui, significa que está tentando fazer com que seu iDevice resolva um nome (para seu servidor https), em um ambiente de teste ou desenvolvimento.
Em vez de usar o squid, que é um ótimo aplicativo, você poderia simplesmente executar um servidor DNS muito básico como o dnsmasq. Ele usará seu arquivo hosts como uma primeira linha de resolução de nome, então, você pode basicamente enganar seu iDevice lá, dizendo que www.blah.com é 192.168.10.10.
O arquivo de configuração é tão simples quanto 3 a 4 linhas, e você pode até configurar seu servidor DHCP interno se desejar.
Aqui é minha:
endereço de escuta = 192.168.10.35
domínio necessário
falso-privado
no-dhcp-interface = eth0
local = / localnet /
Claro que você tem que configurar a rede no seu iDevice para usar aquele DNS (192.168.10.35 no meu caso), ou apenas começar a usar o DHCP daquele servidor mesmo assim, depois de configurado corretamente.
Além disso, se o dnsmasq não puder resolver o nome internamente, ele usará seu servidor DNS regular (como 8.8.8.8) para resolvê-lo para você. MUITO simples, elegante e resolveu meus problemas com a instalação do aplicativo iDevice internamente.
A propósito, também resolve muitos problemas de resolução de nomes com macs normais (OS X).
Agora, meu discurso: maldita maçã. Tornar um dispositivo seguro não deve incluir castrar o sistema operacional ou os desenvolvedores.
Obrigado Carlos. A dificuldade é que usamos o produto VPN móvel da Pulse Secure para testar os servidores. Eles não estão disponíveis fora. Portanto, se quisermos testar um novo certificado PROD, precisamos que o iPad vá para o servidor de teste (onde o certificado PROD está instalado); mas para usar o URL www.prod ...... com. até agora, nenhuma solução para este cenário encontrada. : 0 (
codeslapper
2
Se você tiver a liberdade de escolher o nome do host, poderá simplesmente adicionar seu host a um serviço DNS dinâmico, como dyndns.org. Então, você pode contar com os mecanismos de resolução normal do iPad para resolver o endereço.
CUIDADO COM O LEITOR : o site desta resposta está listado como malware por muitas soluções corporativas de firewall de Internet. Ao enviar todo o seu tráfego por meio de um servidor proxy não confiável, você expõe todas as informações transmitidas. Você realmente confia iphonesettings.net?
ErikE de
-2
Você precisa de acesso /private/etc/, não. você não pode.
@OmG, A pergunta era "é mesmo possível" e seu comentário de fato responde com precisão à pergunta. Pare de copiar / colar comentários para aumentar sua reputação.
Daniel Smith
-6
Melhor resposta: basta adicionar http ou https em seu navegador, o endereço IP, dois pontos e o número da porta. Exemplo: https://123.23.145.67:80
Respostas:
Não. Os aplicativos só podem modificar arquivos dentro do diretório de documentos, em sua própria sandbox. Isso é para segurança e facilidade de instalação / desinstalação. Portanto, você só poderia fazer isso em um dispositivo desbloqueado.
fonte
A resposta anterior está correta, mas se o efeito que você está procurando é redirecionar o tráfego HTTP de um domínio para outro IP, existe uma maneira.
Uma vez que tecnicamente não está respondendo à sua pergunta, eu perguntei e respondi aqui:
Como posso redirecionar solicitações HTTP feitas de um iPad?
fonte
Não, você não pode alterar o arquivo host do iPad (sem jailbreak), mas pode contornar.
Aqui está o meu cenário:
192.168.2.1
, executando um aplicativo da webVou testar o aplicativo da web em execução no meu Mac via iPad, mas não consigo acessar diretamente.
A solução funciona para mim:
Port
(principalmente8888
) e alterneEnable transparent HTTP proxying
.Agora você pode visitar seu aplicativo da web no iPad.
Claro que você pode usar outras ferramentas de proxy, como Squid ou Varnish no Linux, ou fiddler no Wondows.
fonte
NodeJs
módulo de filternetA maneira mais fácil de fazer isso é rodar um simulador de iPad usando XCode e, em seguida, adicionar uma entrada no arquivo hosts (/ etc / hosts) no sistema host para apontar para seu site de teste.
fonte
Eu precisava da mesma funcionalidade, e fazer o jailbreak é impossível. Uma solução é hospedar-se no servidor DNS ( MaraDNS ), acessar as configurações do wi-fi no ipad / telefone e adicionar o servidor DNS personalizado.
Todo o processo demorou apenas 10 minutos e funciona!
1) Faça o download do MaraDNS
2) Executar
mkSecretTxt.exe
como administrador3) Modificar
mararc
arquivo, o meu é:Adicione o arquivo chamado "
example.configuration
" na mesma pasta onderun_maradns.bat
está.4) Edite seu arquivo example.configuration:
5) Desative todos os firewalls (conveniência)
6) Execute o arquivo "
run_maradns.bat
"7) Não deve haver erros.
8) Adicione seu servidor DNS à lista, conforme mostrado aqui: http://www.iphonehacks.com/2014/08/change-dns-iphone-ipad.html
9) Funciona!
fonte
Sim, você pode editar o arquivo hosts do iPad, mas precisa ter o jailbreak. Depois de fazer isso, baixe o Cydia (mercado de aplicativos) e obtenha o iFile. O arquivo hosts está localizado em "/ etc / hosts".
fonte
Imagino que você possa fazer isso configurando um proxy transparente, usando algo como Charles e redirecionar o tráfego dessa forma
fonte
Workarond que uso para fins de desenvolvimento:
fonte
Eu sei que já faz um tempo que isso foi postado, mas com o iOS 7.1, algumas coisas mudaram.
Até agora, se você estiver desenvolvendo um aplicativo, você DEVE ter um certificado SSL válido reconhecido pela Apple, caso contrário, você receberá uma mensagem de erro em seu iDevice. Não há mais certificados autoassinados. Veja aqui uma lista:
http://support.apple.com/kb/ht5012
Além disso, se você estiver aqui, significa que está tentando fazer com que seu iDevice resolva um nome (para seu servidor https), em um ambiente de teste ou desenvolvimento.
Em vez de usar o squid, que é um ótimo aplicativo, você poderia simplesmente executar um servidor DNS muito básico como o dnsmasq. Ele usará seu arquivo hosts como uma primeira linha de resolução de nome, então, você pode basicamente enganar seu iDevice lá, dizendo que www.blah.com é 192.168.10.10.
O arquivo de configuração é tão simples quanto 3 a 4 linhas, e você pode até configurar seu servidor DHCP interno se desejar.
Aqui é minha:
endereço de escuta = 192.168.10.35
domínio necessário
falso-privado
no-dhcp-interface = eth0
local = / localnet /
Claro que você tem que configurar a rede no seu iDevice para usar aquele DNS (192.168.10.35 no meu caso), ou apenas começar a usar o DHCP daquele servidor mesmo assim, depois de configurado corretamente.
Além disso, se o dnsmasq não puder resolver o nome internamente, ele usará seu servidor DNS regular (como 8.8.8.8) para resolvê-lo para você. MUITO simples, elegante e resolveu meus problemas com a instalação do aplicativo iDevice internamente.
A propósito, também resolve muitos problemas de resolução de nomes com macs normais (OS X).
Agora, meu discurso: maldita maçã. Tornar um dispositivo seguro não deve incluir castrar o sistema operacional ou os desenvolvedores.
fonte
Se você tiver a liberdade de escolher o nome do host, poderá simplesmente adicionar seu host a um serviço DNS dinâmico, como dyndns.org. Então, você pode contar com os mecanismos de resolução normal do iPad para resolver o endereço.
fonte
Você também pode usar um servidor proxy em seu iPhone ou iPade via internet móvel (3G) usando um gerador de proxy iPhone Mobile:
http://iphonesettings.net/mobileproxygenerator.php
Basta inserir o apn da sua operadora (com nome de usuário / senha apn se necessário) e o servidor proxy que você deseja acessar e tocar em Gerar
fonte
iphonesettings.net
?Você precisa de acesso
/private/etc/
, não. você não pode.fonte
Melhor resposta: basta adicionar http ou https em seu navegador, o endereço IP, dois pontos e o número da porta. Exemplo: https://123.23.145.67:80
fonte