DOBON.NETプログラミング道掲示板
(現在 過去ログ3 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■33924 / inTopicNo.1)  Windows10(1803)からGetHostEntryでipv4が取得出来ない場合がある
  
□投稿者/ h-sake 一般人(1回)-(2018/07/20(Fri) 15:29:19)
  • アイコン環境/言語:[Windows10 64bit vb.net] 
    分類:[.NET] 



    ↓以下のようなロジックで他PCからホスト名を受け取って、IPアドレス(ipv4)を取得しています。
    *-------------------------------------------------------------------------------------*
    Dim clientInfo As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry("ホスト名")
    Dim IPAdr As System.Net.IPAddress = Nothing
    For Each adr As System.Net.IPAddress In clientInfo.AddressList
    If adr.AddressFamily = AddressFamily.InterNetwork Then
    IPAdr = adr
    Exit For
    End If
    Next
    *-------------------------------------------------------------------------------------*

    Windows10(1803)から上記ロジックで頻繁にIPアドレス(ipv4)が取得出来ない現象が発生しています。
    取得出来る場合もあり、現在調査中です。

    取得出来ない場合、
    上記処理で取得した[clientInfo.HostName]の値が、「ホスト名.local」になり、
    取得出来る場合は、[clientInfo.HostName]の値が、「ホスト名」になります。

    「.local」ですが、調べると「mDNS」というワードが出てきます。

    出来ればプログラムを変更せずにWindowsの設定変更で対応したいと考えています。
    ダメならプログラムを変更します。

    Windows10(1803)から発生している現象です。
    何か情報がある方教えて頂けないでしょうか。
    よろしくお願いいたします。










引用返信 削除キー/
■33933 / inTopicNo.2)  Re[1]: Windows10(1803)からGetHostEntryでipv4が取得出来ない場合がある
□投稿者/ h-sake 一般人(2回)-(2018/07/24(Tue) 16:55:56)
  • アイコン自分で色々と調べて試した結果の中間報告です。

    最終的に
    ファイアウォールの「mDNS (UDP 受信)」と「mDNS (UDP 送信)」の設定を許可から拒否に変更するとうまく動作するようになりました。
    無効にしてもダメでした。拒否にすると何故かうまく行きます。


    ↓参考にした記事(自分の現象とは違いますが、試してみました)
    「Windows 10 April 2018 Update(バージョン 1803)の RDP 関連の残念なバグ」
    https://yamanxworld.blogspot.com/2018/06/windows-10-april-2018-update-1803-rdp_11.html

    「mDNS」の設定を変えると他に影響があるかも知れないですし、
    ファイヤーウォールの設定を変えなくてもうまく動作する環境もあるので、
    もっといい解決方法があると思うのでもう少し調査します。

    本当はプログラムを変更すればすぐに解決するんですが、プログラムの入れ替えの負荷が…
    クライアント側プログラムは自動更新出来るので、最終手段としてはクライアント側で解決するように考えています。

    何かいい方法があれば、よろしくお願いします。

引用返信 削除キー/
■34002 / inTopicNo.3)  Re[2]: Windows10(1803)からGetHostEntryでipv4が取得出来ない場合がある
□投稿者/ h-sake 一般人(7回)-(2018/10/10(Wed) 16:29:33)
  • アイコン
    解決するかも知れません。(^▽^)/

    ↓「Windows 10 Professional 64bit 1803 にアップデートし、「.net」経由でホスト名を取得すると、「外部関数の実行に失敗しました。」エラーが発生する。【Ver1803】」に新たに追記がありました。
    https://answers.microsoft.com/ja-jp/windows/forum/windows_10-networking/windows-10-professional-64bit-1803/54b4776a-f93a-42aa-9cd9-04c7b6d522a1


    内容は
    *----------------------------------------------------------------*
    本件ですが、マイクロソフトと一緒に調査を進め、

    結果として、「%Systemroot%\system32 の dnsapi.dll 」に不具合であることが分かりました。

    マイクロソフトにdnsapi.dllを修正いただき、この修正版で試したところIPv4とホスト名が正常に取得できるようになりました。

    この対応は

    ・Windows 10 1809(RS5)は初回から対応される。

    ・Windows 10 1803については12月のWindows Updateで対応される予定。

    とのことです。

    いろいろとありがとうございました。

    *----------------------------------------------------------------*

    まだ試していませんが、おそらく解決すると思うので質問を解決済みとさせていただきます。
解決み!
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/


- Child Tree -