ผมหามาทั้งวันเลยครับ ส่วนใหญ่ที่เจอก็เจอแบบ show แต่ ip เครื่องตัวเอง และ gateway มากกว่า ผมนั่งค้นและทดสอบทั้งวัน มันเกิด idea
หนึ่งขึ้นในหัวผม ผมไปเจอการใช้ Dns.GetHostEntry() แต่ว่ามันก็ใช้ดู ip ที่เชื่อมต่อเข้ามากับเครื่องตัวเองได้ ไม่สามารถดู ip ที่เชื่อมต่อเข้ามา
ที่เครื่องอื่น หรือ router ได้ จะให้ผมมานั่งใช้ for() แบบให้มัน loop ไป 192.168.1.*** ก็ดูแปลก ๆ
นี้คือ code ที่ผมไปเจอมา แล้วเอามายำ แต่รู้สึกว่า Dns.GetHostEntry() จะไม่สามารถใช้ 192.168.1.1 หรือ ip ของ gateway ได้(ไม่ใช่เครื่อง ip router แต่ ip ทุก ๆ เครื่อง ไม่สามารถใช้ได้ ยกเว้นเครื่องตัวเอง)
Code
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Net;
using System.Net.NetworkInformation;
using System.Net.Sockets;
using System.Threading;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
foreach (IPAddress ip in Dns.GetHostEntry("192.168.1.108").AddressList)
{
if (ip.AddressFamily.ToString() == "InterNetwork")
{
Console.WriteLine(ip.ToString());
}
}
}
static IPAddress NetworkGateway()
{
IPAddress ip = null;
foreach (NetworkInterface f in NetworkInterface.GetAllNetworkInterfaces())
{
if (f.OperationalStatus == OperationalStatus.Up)
{
foreach (GatewayIPAddressInformation d in f.GetIPProperties().GatewayAddresses)
{
ip = d.Address;
}
}
}
return ip;
}
}
}