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

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

ただいまの
回答率

90.04%

家庭内LANのなかのPCから、Webサーバーにアクセスしたいです。

解決済

回答 3

投稿 編集

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

cancat

score 247

こんにちは。 
Windows10でWPFのアプリケーションを開発しています。 
Visual Studio 2017 Communityを使っています。 

前提・実現したいこと

家庭内LANのなかのPCから、Webサーバーとしたサーバーにアクセスする方法を知りたいです。

試したこと

https://pc-karuma.net/windows-10-firewall-open-port/
を参考に、TCPのポート8123を開きました。受信送信両方です。

https://teratail.com/questions/61597
でC#でサーバーを作りました。

//listener.Prefixes.Add("http://+:8123/");    //NG
listener.Prefixes.Add("http://localhost:8123/");    //OK
//listener.Prefixes.Add("http://127.0.0.1:8123/");    //OK

という状況です。

これで、ローカルマシンAからローカルマシンAで起動したサーバーにIEで接続できました。接続時に使用したURLは、http://localhost:8123/またはhttp://127.0.0.1:8123/です。

発生している問題・エラーメッセージ

うまくいったので、他のマシンBからこのマシンAのWebサーバーにアクセスしようと考えました。
URLは、http://localhost:8123/またはhttp://127.0.0.1:8123/です。
アクセスすると、「このページを表示できません」となります。
http://A(マシン名):8123とすると、Bad Request - Invalid Hostnameでエラーです。
AマシンのローカルのIPアドレスは、192.168.1.2なので、
http://192.168.1.2:8123もためしましたが、これも同様に、Bad Request - Invalid Hostnameでエラーです。

他のマシンからアクセスする方法をご教示ください。

補足情報(言語/FW/ツール等のバージョンなど)

Microsoft Visual Studio Community 2017
Version 15.0.26228.9 D15RTWSVC
Microsoft .NET Framework
Version 4.6.01586

です。 
よろしくお願いします。

あらためて再起動しました。
B(192.168.1.3)からA(192.168.1.2)へpingは通りました。
マシンB(192.168.1.3)でマイクロソフトのPortQry.exeで確認すると、
TCP port 8123 {unknown service): LISTENING
となりました。

そこで、マシンBで、
http://192.168.1.2:8123
http://A:8123
http://192.168.1.2/test.cgi:8123
http://A/test.cgi:8123
http://192.168.1.2:8123/test.cgi
http://A:8123/test.cgi
を試すも全滅です。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 3

checkベストアンサー

+3

デフォルトの設定だと、Visual Studioで開発したWEBアプリにアクセスできるのは自端末のみのようです。

http://devadjust.exblog.jp/23066969/

しかしセキュリティ上の観点からであろう、Visual Studio による Web アプリ開発においては、その Web アプリは localhost (127.0.0.1 及び ::1) にしかバインドされていない。

http://qiita.com/k_saito/items/790884389e0c0611b258

Visual StudioではデフォルトのホスティングとしてIIS Expressが使用されます。しかし、このIIS Expressでホスティングされた場合、LAN内の他のPCからhttp://[IPアドレス]:[ポート番号]/の形で指定してもアクセスすることが出来ません。

自端末以外からアクセスする方法についても上記のURLに記載されていますので、内容をご確認の上対策されてはいかがでしょうか。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/05/14 22:08

    こんにちは。参考情報ありがとうございます。
    今回のアプリケーションは、IISは使っていないのです。
    https://teratail.com/question/61597
    なので、ご示唆いただいたapplicationhost.configファイルは存在せず、そもそも設定が違っているようでした。

    キャンセル

  • 2017/05/14 22:18

    Chironian様の回答にある通り、コードを次の通り変更したうえで、マシンBのブラウザでhttp://192.168.1.2:8123にアクセスしたらどうなりますか。

    listener.Prefixes.Add("http://192.168.1.2:8123:8123/");

    キャンセル

  • 2017/05/14 22:29

    192.168.1.2:8123でできました!
    大感謝。

    キャンセル

+1

こんにちは。

//listener.Prefixes.Add("http://+:8123/");    //NG 

listener.Prefixes.Add("http://*:8123/");の間違いとか?

URLは、http://localhost:8123/またはhttp://127.0.0.1:8123/です。

localhostと127.0.0.1は「自分自身」を指します。このURLを指定したPCがマシンBなら、マシンB自身を指します。サーバがマシンAにあり、マシンBにないなら当然接続できません。

http://A(マシン名):8123http://192.168.1.2:8123でうまくいきそうな気がします。
マシンBはどこにありますか? マシンAと同じ家庭内LANにありますか?
同じLANにあるならファイヤーウォールも開いているようですし、届くはずなのですが...

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/05/14 22:05

    こんにちは。A,Bはおなじ家庭内LANのなかです。
    http://+:8123/
    は、
    http://*:8123/
    ではないみたいです。
    http://*:8123/
    でもだめだったので。

    キャンセル

0

BマシンからAマシンへpingが届くかどうか、とFWの設定が気になります。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/05/14 20:58

    B(192.168.1.3)からA(192.168.1.2)へpingは通りました。
    ping 192.168.1.2
    ping machineA
    のどちらもOKです。

    https://pc-karuma.net/windows-10-firewall-open-port/
    を参考に、ポートを開いたのですが、マイクロソフトのPortQry.exeで確認すると、
    TCP port 8123 {unknown service): FILTERED
    と、フィルタリングされている模様。

    あらためて、コントロールパネルからファイアウォール設定を見てみると、設定じたいは動作しているものの、プロパティを見ると、
    プロトコルの種類 TCP
    プロトコル番号 6
    ローカルポート 特定のポート
    8123
    リモートポート すべてのポート
    となっていました。

    これでよいのでしょうか?

    キャンセル

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

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

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