VB.NETを使用してイーサネットとWiFiのIPアドレスを区別する方法

アメイ

ローカルマシンのイーサネットIPアドレスを返す汎用VB.NETベースのアプリケーションを開発しようとしています。マシンのIPアドレスを取得するためにここで説明したいくつかの質問を参照し、いくつかの良い提案を見つけました。

私が直面している問題は、このアプリケーションを実行すると、WiFiとイーサネットの両方のIPアドレスが返されることです。このアプリケーションを他の人のマシンで実行すると、どのIPアドレスがどのインターフェイスに属しているのかわかりません。イーサネットIPアドレスのみに興味があります。

助言がありますか ??

IPアドレスのリストを返す関数は次のとおりです。

Function getIP() As String

    Dim ips As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName)

    For Each ip In ips.AddressList
        If (ip.AddressFamily = System.Net.Sockets.AddressFamily.InterNetwork) Then
            MessageBox.Show(ip.ToString)
            Return ip.ToString
        End If
    Next
    Return Nothing

End Function
やり直し

を介してIPアドレスを取得するのではなくIPHostEntry、ネットワークアダプターを介して列挙し、各アダプターからIPアドレスを取得できます。

ANetworkInterfaceは、NetworkInterfaceTypeプロパティを介してそのタイプを提供します。イーサネットアダプタの場合、これはを返しますEthernetワイヤレスアダプタの場合、ドキュメントには指定されていませんが、返さWireless80211れました。

サンプルコード:

Imports System.Net.NetworkInformation


Public Class Sample

    Function GetIP() As String
        Dim networkInterfaces() As NetworkInterface


        networkInterfaces = NetworkInterface.GetAllNetworkInterfaces()

        For Each networkInterface In networkInterfaces
            If networkInterface.NetworkInterfaceType = NetworkInterfaceType.Ethernet Then
                For Each address In networkInterface.GetIPProperties().UnicastAddresses
                    If address.Address.AddressFamily = Net.Sockets.AddressFamily.InterNetwork Then
                        Return address.Address.ToString()
                    End If
                Next address
            End If
        Next networkInterface

        Return Nothing
    End Function

End Class

または、もう少し簡潔なバージョンが必要な場合は、LINQ(上記のコードと同等)を使用できます。

Function GetIP() As String
    Return (
        From networkInterface In networkInterface.GetAllNetworkInterfaces()
        Where networkInterface.NetworkInterfaceType = NetworkInterfaceType.Ethernet
        From address In networkInterface.GetIPProperties().UnicastAddresses
        Where address.Address.AddressFamily = Net.Sockets.AddressFamily.InterNetwork
        Select ip = address.Address.ToString()
    ).FirstOrDefault()
End Function    

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

VB.NetでIPアドレス、サブネット、デフォルトゲートウェイ、DNS1およびDNS2を取得します

分類Dev

vb.netを使用してIPとポートを分離する方法は?

分類Dev

適用方法と表示方法vb.netを使用してビューアでCrystalレポートのヘッダーの高さを変更する

分類Dev

VB.Netコードビハインドを使用してWPFアプリケーションのリストボックスコントロールからレコードを削除する方法

分類Dev

VB.NETとLINQを使用してWebサイトからXMLをスクレイピングする

分類Dev

VB.NETを使用してSFTPサーバーにファイルをアップロードする

分類Dev

VB.NET(Visual Basic)を使用してSFTPサーバーにファイルをアップロードする

分類Dev

VB.NETのスプレッドシートライトを使用して、あるExcelファイルを別のExcelファイルにコピーするにはどうすればよいですか?

分類Dev

データベースSQLサーバーから特定のテーブルをバックアップし、vb.netコードを使用して.bakファイルをコンピューターに保存する方法

分類Dev

VB.NET:IPアドレスからのネットワークデバイスの製造元名

分類Dev

VBを使用して、あるシートから別のシートに複製をカットアンドペーストします

分類Dev

VbネットのFor句を使用してデータベースmysqlからデータを取得する方法

分類Dev

アンチデバッガー手法:VB.NETを使用してデバッガーからスレッドを非表示にする方法は?

分類Dev

大文字と小文字を区別してボタンのテキストを変更しますか?VB.Net

分類Dev

vb.net:レコードセットをOdbc.OdbcDataReaderとして使用する列名

分類Dev

vb.netを使用してユーザーのPCからサーバーにファイルをアップロードする

分類Dev

SQLを使用してvb.netで時間別にチャートを表示するフィルターとしてコンボボックスを使用する

分類Dev

ストアドプロシージャoraclesqlおよびvb.netを使用してコンボボックスにデータを入力する方法

分類Dev

ストアドプロシージャoraclesqlおよびvb.netを使用してコンボボックスにデータを入力する方法

分類Dev

vb.netを使用して配列リスト値を別の配列リストにコピーする

分類Dev

vb6-Windows7以降でネットワークアダプターの物理アドレスを取得する

分類Dev

VB.netの構造体としてVB6ネスト型を再実装する

分類Dev

VB(VS2019)のWord文書から印刷するときに、コードを使用してプリンターのトレイを選択する方法

分類Dev

InternetExplorerを使用してWebサイトをHTMLとして保存することを自動化するVB.NET

分類Dev

ジェネリッククラスVB.NETの型を判別する方法

分類Dev

VB.NET-別のスレッドから値を読み取る方法

分類Dev

リストボックスを検索し、別のフィールドで定義された特定の数のアイテムを返します-VB.net

分類Dev

ビルド番号を使用してVB.NetでOSを識別する方法

分類Dev

VB.Net別のスレッドでタスクを実行する

Related 関連記事

  1. 1

    VB.NetでIPアドレス、サブネット、デフォルトゲートウェイ、DNS1およびDNS2を取得します

  2. 2

    vb.netを使用してIPとポートを分離する方法は?

  3. 3

    適用方法と表示方法vb.netを使用してビューアでCrystalレポートのヘッダーの高さを変更する

  4. 4

    VB.Netコードビハインドを使用してWPFアプリケーションのリストボックスコントロールからレコードを削除する方法

  5. 5

    VB.NETとLINQを使用してWebサイトからXMLをスクレイピングする

  6. 6

    VB.NETを使用してSFTPサーバーにファイルをアップロードする

  7. 7

    VB.NET(Visual Basic)を使用してSFTPサーバーにファイルをアップロードする

  8. 8

    VB.NETのスプレッドシートライトを使用して、あるExcelファイルを別のExcelファイルにコピーするにはどうすればよいですか?

  9. 9

    データベースSQLサーバーから特定のテーブルをバックアップし、vb.netコードを使用して.bakファイルをコンピューターに保存する方法

  10. 10

    VB.NET:IPアドレスからのネットワークデバイスの製造元名

  11. 11

    VBを使用して、あるシートから別のシートに複製をカットアンドペーストします

  12. 12

    VbネットのFor句を使用してデータベースmysqlからデータを取得する方法

  13. 13

    アンチデバッガー手法:VB.NETを使用してデバッガーからスレッドを非表示にする方法は?

  14. 14

    大文字と小文字を区別してボタンのテキストを変更しますか?VB.Net

  15. 15

    vb.net:レコードセットをOdbc.OdbcDataReaderとして使用する列名

  16. 16

    vb.netを使用してユーザーのPCからサーバーにファイルをアップロードする

  17. 17

    SQLを使用してvb.netで時間別にチャートを表示するフィルターとしてコンボボックスを使用する

  18. 18

    ストアドプロシージャoraclesqlおよびvb.netを使用してコンボボックスにデータを入力する方法

  19. 19

    ストアドプロシージャoraclesqlおよびvb.netを使用してコンボボックスにデータを入力する方法

  20. 20

    vb.netを使用して配列リスト値を別の配列リストにコピーする

  21. 21

    vb6-Windows7以降でネットワークアダプターの物理アドレスを取得する

  22. 22

    VB.netの構造体としてVB6ネスト型を再実装する

  23. 23

    VB(VS2019)のWord文書から印刷するときに、コードを使用してプリンターのトレイを選択する方法

  24. 24

    InternetExplorerを使用してWebサイトをHTMLとして保存することを自動化するVB.NET

  25. 25

    ジェネリッククラスVB.NETの型を判別する方法

  26. 26

    VB.NET-別のスレッドから値を読み取る方法

  27. 27

    リストボックスを検索し、別のフィールドで定義された特定の数のアイテムを返します-VB.net

  28. 28

    ビルド番号を使用してVB.NetでOSを識別する方法

  29. 29

    VB.Net別のスレッドでタスクを実行する

ホットタグ

アーカイブ