iPhone에 호스트 파일이 있습니까? 어떻게 변경합니까? [닫은]


104

서버에 쿼리하는 응용 프로그램을 개발 중입니다. 내 Mac에서는 호스트 파일을 사용하여 로컬 영역 네트워크 내의 로컬 서버를 가리 키도록 DNS를 변경합니다.

이제 iPhone으로 테스트해야합니다. 문제는 DNS 구성이 누락되어 iPhone이 해당 서버를 인식하지 못한다는 것입니다.

내 Mac 또는 Windows에서는 간단히 192.168.0.20 http://www.google.com호스트 파일에 다음 을 추가 합니다.

이제 iPhone에 URL을 어떻게 알릴 수 http://www.google.com있습니까?


iPhone을 탈옥하고, iFile을 다운로드 하고, 텍스트 뷰어에서 /etc/라는 파일 을 찾아서 엽니 다 hosts. 이제 편집 할 수 있습니다.

OSX 및 Charles Web Proxy로 iPhone에서 로컬 개발 deployfx.com/2011/08/…
jfroom

1
OSX iOS 시뮬레이터 및 / etc / hosts 파일을 업데이트하십시오.
dmarvasti

또한 : Bonjour를 설치 (sudo는 apt-get을 설치를 Avahi - 데몬를 Avahi-유틸)와 통한 액세스 hostname.local 아이폰 / 아이 패드
사샤 토미 슬라브 Mataić

: 나는 나를 위해 일한이 하나, 같은 답변을 볼 수 없습니다 놀랐습니다 stackoverflow.com/a/41857012/470749
라이언

답변:


37

이것은 귀하의 질문에 직접 대답하지는 않지만 문제를 해결합니다 ...

어떤 종류의 라우터가 있습니까? 라우터 펌웨어를 사용하여 로컬 네트워크에 대한 DNS 레코드를 설정할 수 있습니다. 이것이 제가 Tomato 펌웨어 로하는 일입니다.


덕분에,이 내가이 문제를 해결하기 위해 무슨 짓)
호앙 팜

pfsense를 사용하는 것을 제외하고는이 방법도 사용했습니다.
codewise apr

어떻게 작동
할까요

82

여기에 또 다른 옵션은 프록시를 통해 iPhone을 연결하는 것입니다. 다음은 Fiddler로 수행하는 방법의 예입니다 (매우 쉽습니다).

http://conceptdev.blogspot.com/2009/01/monitoring-iphone-web-traffic-with.html

이 경우 iPhone이 수행하는 모든 DNS 조회는 Fiddler가 실행중인 컴퓨터의 호스트 파일을 사용합니다. 참고 하지만, 당신이 DNS를 통해 해결 될 수있는 이름을 사용해야합니다. example.local예를 들어는 작동하지 않습니다. example.xyz또는 example.dev의지.


3
이것이 가장 간단한 해결책입니다. 나는 이것을 생각 했어야했다 !!
jimplode

1
대박. 이것은 나를 위해 대접을 받았다!
Sniffer 2011

1
같은 일이 OSX에 좋은 작품, 설치 네트워크 설정에서 HTTP 프록시 i.imgur.com/h5zEm.png
antonj

2
OSX 및 Charles Web Proxy를 사용하여 iPhone에서 로컬 개발 deployfx.com/2011/08/…
jfroom

1
뿐만 아니라 DNS 조회에 - 이것은 어떤 모바일 앱 개발을위한 무기고에 가지고있는 훌륭한 도구입니다
JoshuaDavid

32

프로그래밍과 관련이 없지만 어쨌든 대답하겠습니다. 그것은/etc/hosts 있습니다.

다음과 같은 간단한 텍스트 편집기로 변경할 수 있습니다. nano .

(분명히 당신은 이것을 위해 탈옥 아이폰이 필요할 것입니다)


3
바닐라 아이폰에서 nano를 사용하여 / etc / hosts에 직접 접근 할 수 없습니다. 나는 배포 될 앱에 관한 것이라고 가정하고,이 경우 샌드 박스 외부의 파일을 엉망으로 만들 수 없습니다.
Jaanus 2010 년

@Jaanus : 물론 탈옥 한 아이폰을 의미했습니다. 그리고 그는 재배포되는 앱에 대해 아무 말도하지 않았습니다. 그는 단순히 DNS 문제가있는 자신의 아이폰에서 테스트해야한다고 언급했습니다.
Thomas Bonini

16
나는 반대표를 이해하지 못합니다. 대답은 기술적으로 정확하고 잘 작성되었습니다.
Thomas Bonini

2
편집을 위해 업장을 복원하겠습니다. 묵시적인 '분산 앱용' 때문에 다운 투표가 사용 되었다면 , 제가 ​​이해할 수있는 동안에 다운 투표자들이 그것을 설명하기 위해 코멘트를 남겼어야한다고 생각합니다.
David는 Monica를 복원한다고 말합니다.

2
나는 그가 자신의 앱을 테스트 할 수 있도록 호스트 파일 만 변경하면된다고 생각합니다. 테스트가 완료되면 호스트 파일을 변경할 필요가 없습니다. 여기서 탈옥을 추천하는 것이 완벽하게 허용됩니다!
Pong

14

방금 iPhone의 '호스트'파일을 성공적으로 편집했습니다 (Jailbroken iOS 4.0에서).

  • OpenSSH 설치Cydia를 통해 iPhone에
  • 컴퓨터에서 FileZilla 와 같은 SFTP 클라이언트를 사용하여 iPhone에 연결했습니다.
    • 주소 : [휴대 전화의 IP 주소 또는 호스트 이름을 사용합니다. simophone.local]
    • 사용자 이름: root
    • 암호: alpine
  • /etc/hosts파일을 찾았습니다.
  • 내 컴퓨터에 백업 을 만들었습니다 (나중에 변경 사항을 되돌리려는 경우)
  • 괜찮은 텍스트 편집기 (예 : Notepad ++ ) 에서 호스트 파일편집했습니다 . 호스트 파일에 대한 설명은 여기 를 참조 하십시오 .
  • 변경 사항을 업로드하여 iPhone의 호스트 파일을 덮어 씁니다.

전화기는 일부 웹 페이지와 DNS 쿼리를 캐시하므로 재부팅하거나 캐시를 지우면 도움이 될 수 있습니다. 누군가에게 도움이되기를 바랍니다.

사이먼.


1
@Simon 같은 단계를 따랐지만 작동하지 않았습니다. 그런 다음 인코딩 설정을 변경하려고 시도했습니다. 호스트 파일을 저장하기 전에 Notepad ++에서 ANSI로 변환해야합니다. 호스트 파일 작동에 실패한 사람 " 인코딩 "메뉴 에서 " ANSI로 변환 "을 클릭 합니다.
trkaplan

2
Cydia의 iFile 앱을 사용하여 컴퓨터를 사용하지 않고도 장치에서 호스트 파일을 편집 할 수도 있습니다. Ad @ m
kirb 2011-06-17

2
.. 기본 비밀번호를 alpine에서 다른 것으로 변경하세요!
Tieme

7

존재할 수 있지만 탈옥되지 않은 iPhone에서는 변경할 수 없습니다.

개발 용 웹 서버가 Mac에 있다고 가정 할 때, MyMac.local.대신 Bonjour 이름 (예 :)을 사용하는 것이 myrealwebserverontheinternet.com어떻습니까?


모든 웹 서비스는 내 LAN 네트워크 내의 서버에 있습니다. 도메인 이름이 있고 도메인 이름도이 서버에 매핑하고 싶습니다. 누군가가 자신의 모든 웹 서비스에 대한 주소를 제공한다고 상상해보세요. 그는이 주소를 사용하여 이러한 서비스를 쿼리하도록 요청합니다. 그는 호스트 파일을 iphone이 아닌 mac, windows에 추가하는 방법을 보여줄 수 있습니다. -s
Hoang Pham

6

다른 사람이이 페이지에 해당하는 경우 도메인 대신 URL 요청에 IP 주소를 사용하여이 문제를 해결할 수도 있습니다.

NSURL *myURL = [NSURL URLWithString:@"http://10.0.0.2/mypage.php"];

그런 다음 호스트를 수동으로 지정합니다.

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:myURL];
[request setAllHTTPHeaderFields:[NSDictionary dictionaryWithObjectAndKeys:@"myserver",@"Host"]];

서버에 관한 한, http://myserver/mypage.phpiPhone이 DNS 조회를 수행 할 필요가 없다는 점을 제외 하고는를 사용한 것과 똑같은 방식으로 작동합니다 .

100 % 공용 API.


2
그러나 이것은 첫 번째 요청에서만 작동하며 mypage.php가 myserver에 대한 다른 요청을 수행하면 앱이 변환을 수행하지 않습니다.
htafoya 2014

이 방법은 쿠키를 사용하지 않으려는 경우 유용합니다.
DUzun 2014 년

아니. 이것도 작동하지 않았습니다. SSL 고정을 사용하고 있으므로 도메인 불일치로 인해 문제가 발생했습니다. '017-07-13 10 : 21 : 42.244723-0400 ApperName [1015 : 449748] libMobileGestalt MobileGestaltSupport.m : 153 : pid 1015 (ApperName)에 대한 샌드 박스 액세스 권한이 없습니다. frZQaeyWLUvLjeuEK43hmg이며 적절한 자격이 없습니다. 2017-07-13 10 : 21 : 42.244886-0400 UnionBank [1015 : 449748] libMobileGestalt MobileGestalt.c : 550 : InverseDeviceID에 대한 액세스 권한 없음 (<rdar : // problem / 11744455> 참조) '
코드 래퍼

5

전화기에서 DNS를 변경하지 마십시오. 대신 Wi-Fi로 로컬 네트워크에 연결하면 모든 설정이 완료됩니다.

제 사무실에는 인터넷에 노출되지 않는 내부 DNS가있는 내부 서버가 있습니다. iPhone을 사무실 Wi-Fi에 연결하기 만하면 정상적으로 액세스 할 수 있습니다.

YMMV이지만 전화 DNS를 구성하는 대신 로컬 내부 DNS와 Wi-Fi를 설정하는 것이 더 깨끗하고 쉬운 솔루션이라는 느낌이 듭니다.


1

아니요, iPhone 응용 프로그램은 자체 작은 샌드 박스 내에서만 항목을 변경할 수 있습니다. (즉석에서 변경할 수없는 것도 있습니다.)

가장 좋은 방법은 호스트 이름이 아닌 서버 IP 주소를 사용하는 것입니다. 약간 어렵게, 그러나 것을 당신은 단지 하나의 주소를 해결해야하는 어려운 경우, Mac에서 DNS 서버를 넣어 그것을 사용하는 아이폰을 구성하는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.