36839


同じネットワークに入って

  * iPhoneのSafariで`http://IPアドレス:3000`にはアクセス **可能**
  * `http://api.IPアドレス:3000`だとアクセス **不可能**

となってしまいます。

ちなみにiPhoneアプリから同様にアクセスしてみても

> NSLocalizedDescription=指定されたホスト名のサーバが見つかりませんでした。

というエラーが出てしまいます。

おそらく `api.数字.数字.数字.数字`
となっているのでドットが本来のIPアドレスよりも1個多くなってしまっているのがあやしい気がするのですが、解決方法はるのでしょうか？


CC BY-SA 3.0
2017-08-01T05:30:31.490
36838
2017-08-02T03:14:18.167
2017-08-02T03:14:18.167
9008
9008
question
network
http://api.ローカルIPアドレス:3000 にアクセスできない


`api.example.com`というホスト名`api`・ドメイン名`example.com`の組み合わせをDNSで名前解決することによって、IPアドレスが得られ通信できる仕組みです。IPアドレスのドットが多いではなく、根本的な理解の問題です。

解決方法として簡単に挙げられるのは以下の二つです。

  * `http://IPアドレス:3000`のままアクセスする
  * `http://api.example.com:3000`などで名前解決できるようにローカルネットワークを構成する


CC BY-SA 3.0
2017-08-01T05:44:16.190
36839
2017-08-01T06:21:07.683
2017-08-01T06:21:07.683
2238
2238
36838
answer


**セキュリティに関する注意事項: 外部のサービスですので、機密性が高い情報を扱う場合には注意してください。**

ホスト名の仕組みについては @htb さんの解説にある通りですが、手っ取り早く解決する方法として、xip.io や nip.io
を利用する方法があります。これらのドメイン名では、

[code]

    IPアドレス.xip.io
    任意の文字列.IPアドレス.xip.io
    IPアドレス.nip.io
    任意の文字列.IPアドレス.nip.io
    
[/code]

というホスト名がそのIPアドレスにマッピングされています。

たとえば、api.192.168.1.100.xip.io は 192.168.1.100
として名前解決されますので、お望みの動作に近いことができると思います。

なお、ローカルホストに限定すると、lvh.me という同様のサービスがあります。


CC BY-SA 3.0
2017-08-02T03:10:20.927
36867
2017-08-02T03:10:20.927
76
36838
answer