質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.49%

  • Android

    6533questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Arduino

    539questions

    Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

  • Xamarin

    502questions

    Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

  • DNS

    283questions

    DNSとは、Domain Name Systemのことで、インターネットなどのTCP/IPネットワーク上でドメイン名やホスト名と、IPアドレスとの対応づけを管理するシステムです。DNSのデータベースは、IPアドレスの4つの数字を通知するDNSサーバーで構築されており、IPアドレスをドメイン名から引き出す機能やドメイン名に関するメールサーバ情報を取り扱っています。

  • IoT

    56questions

    IoT(Internet of Things)とは、インターネットがコンピュータなどの情報・通信機器のネットワークだけでなく、世の中のある様々なモノに接続されて自動認識・自動制御・遠隔計測などの能力を備えることです。「モノのインターネット」と一般的にいわれます。

Android端末からローカルネットワークの名前解決がしたい

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 3,449

masa246

score 3

ESP8266にてIoT機器を作ろうとしていて、Android 端末からローカルネットワークにおける名前解決がしたいです。

現状はIPアドレスでESP8266にアクセスできます。
また、下記サイトを参考にさせていただき、iOSとWindows10からはhttp://ESP8266.localでアクセスでき、Windows10からはさらにhttp://ESP8266でもアクセスできました。
唯一android4.4からは名前解決が出来ずに直接IPアドレスでのアクセスしかできません。

ESP8266に記述する名前解決する為の参照コード
https://github.com/soramimi/esp8266naming

どうすればandroidからの名前解決が出来るのでしょうか。
ご教授お願いします。

なお、アクセス元としてはVisualStudioでXamarin.formsを用いてアプリを作り、そこからサーバーとしてローカルネットワークに繋がっているESP8266にアクセスしようとしています。

また、必要な情報がございましたら追記したいと思いますのでお教えいただきたいです。
どうかよろしくお願い致します。

<追記>
iOS,Win,Android,esp8266は全て同じルーターのネットワーク内にいます。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • CHERRY

    2017/04/10 21:41 編集

    android 端末は、無線LAN(ESP8266と同一のネットワーク)に接続されているのでしょうか?

    キャンセル

  • masa246

    2017/04/10 23:02

    はい。ESP8266と同一ネットワーク上に接続しています。 IPアドレスでならESP8266にアクセス出来るのですが、ホスト名ではアクセス出来ない状態です。

    キャンセル

回答 1

checkベストアンサー

+3

LAN内にDNSサーバ建てて、そこでESP8266とIPを紐付けて、AndroidのWi-Fiのネットワークの参照先DNSをそこのDNSにすればできると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/04/10 23:14

    ご回答ありがとうございます。

    LAN内のDNSサーバーですが、これはルーターがその役を担ってくれていると思っておりました。違うのでしょうか?
    iOSやWindowsからは名前解決が出来ているのでルーターがDNSサーバーの役割を果たせていると思い込んでおりました。
    認識が間違っていますでしょうか?

    また、Androidにおいて参照先DNSを設定する項目があるのでしょうか?

    キャンセル

  • 2017/04/10 23:58 編集

    ルータのDNSサーバーの機能はプロバイダとかのDNSへリレーするものですのでLAN内の名前解決には関係ないです。
    そして、iOSから名前解決できたのはBonjourっていう技術で、windowsから名前解決できたのはNetBIOS over TCP/IPっていう技術です。
    そして残念なことにAndroidにはまだそれらに変わるものはないみたいです。(私の調査知識不足かもしれませんが)
    てなことで、現状Androidから名前解決するにはDNSを使うかAndroidにhostsファイル(そのマシンだけが参照する名前解決用のリストみたいなもの)を作る感じになるのかなと思います。

    (追記)
    >>Androidにおいて参照先DNSを設定する項目があるのでしょうか?
    あります。Wi-Fiのあたりに ググればわかると思います

    キャンセル

  • 2017/04/11 03:04

    なるほど。わかりやすいご説明ありがとうございます。
    ルーターにDNS機能がありそれを使う為にBonjour等があるのだと思っておりました。
    同一ネットワーク内の名前解決においてはBonjour等はルーターのDNS機能関係なしに働くのですね。
    大変勉強になりました。ありがとうございます。

    また、mDNSのandroid バージョンの様なjmDNSというものがある様なのですがこれはBonjourの様にDNSサーバーを立てなくても名前解決出来る様なものではありませんか?
    私自身askbt様の回答でDNSについて少し理解したばかりなので調査不足ですがお許しください。

    Android の参照先DNS設定の方法はわかりました。ありがとうございます。
    しかし、出来るのならiOSやWinの様にESP8266かXamarinに対するコードの記述で対応したいです。
    上記のjmDNSならそれが出来そうな感じがするのですが、まだまだ知識不足で馬鹿なことを言っていたら申し訳ありません。
    自分でも調べますがよろしければjmDNSについてご存知でしたらご教授願いたいと思います。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.49%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Android

    6533questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Arduino

    539questions

    Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

  • Xamarin

    502questions

    Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

  • DNS

    283questions

    DNSとは、Domain Name Systemのことで、インターネットなどのTCP/IPネットワーク上でドメイン名やホスト名と、IPアドレスとの対応づけを管理するシステムです。DNSのデータベースは、IPアドレスの4つの数字を通知するDNSサーバーで構築されており、IPアドレスをドメイン名から引き出す機能やドメイン名に関するメールサーバ情報を取り扱っています。

  • IoT

    56questions

    IoT(Internet of Things)とは、インターネットがコンピュータなどの情報・通信機器のネットワークだけでなく、世の中のある様々なモノに接続されて自動認識・自動制御・遠隔計測などの能力を備えることです。「モノのインターネット」と一般的にいわれます。