0

ここでヌーブを完成させます。ただ学ぶ:)

いろいろ調べてみましたが、答えが得られませんでした。

ゲートウェイ IP をテキスト ボックスに表示しようとしています。これが私のコードです(スニペットから構築):

foreach (NetworkInterface f in NetworkInterface.GetAllNetworkInterfaces())
    if (f.OperationalStatus == OperationalStatus.Up)
        foreach (GatewayIPAddressInformation d in f.GetIPProperties().GatewayAddresses)

         Gateway_Address.Text = d.Address.ToString();

テキストボックスには「::」のみが表示されます

今、私が使用する場合(別のスレッドからコピー):

foreach (NetworkInterface f in NetworkInterface.GetAllNetworkInterfaces())
    if (f.OperationalStatus == OperationalStatus.Up)
        foreach (GatewayIPAddressInformation d in f.GetIPProperties().GatewayAddresses)
            MessageBox.Show(d.Address.ToString());

メッセージ ボックスに IP が表示されます。なぜ出力が異なるのですか?

4

2 に答える 2

0
Gateway_Address.Text += d.Address.ToString() + "\r\n";

また

var nis = System.Net.NetworkInformation
            .NetworkInterface.GetAllNetworkInterfaces()
            .Select(s =>
                string.Format("{0}: {1}", s.Name,
                string.Join(";", s.GetIPProperties().GatewayAddresses.Select(ss => ss.Address.ToString()))));

Gateway_Address.Text = string.Join("\r\n", nis);
于 2013-11-14T04:13:29.360 に答える