範例一 NET 常用的物件
//用於存取IP的 IPAddress
IPAddress ip = IPAddress.Parse("192.168.1.143");
Console.WriteLine("MyIp=" + ip);
//存取IP跟 PORT,將網路端點表示成 IP 位址和通訊埠編號。
IPEndPoint Port = new IPEndPoint(ip, 80);
Console.WriteLine("the port is=" + Port);
// IPEndPoint.Serizlize() 將端點資訊序列化為 SocketAddress 執行個體。
//疑問? 話說序列化為 SocketAddress 能幹啥?
SocketAddress Soket = Port.Serialize();
Console.WriteLine("socketAddr=" + Soket);
//印出 socketAddr {InterNetwork:16:{0,80,192,168,1,143,0,0,0,0,0,0,0,0}}
Console.ReadLine();//
範例二 用IP來取得主機名稱
//範例IP yahoo: 192.168.1.143 名子是JASON-PC
IPAddress ipAddr = IPAddress.Parse("192.168.1.143");
// 透過DNS找尋IP位址相對應之主機名稱
IPHostEntry remoteHostEntry = Dns.GetHostEntry(ipAddr);
//呼叫IPHostEntry中的HostName及可取得 HOST的 NAME
Console.WriteLine("host of ip " + ipAddr + " is " + remoteHostEntry.HostName);
Console.ReadLine();
//印出JASON-PC
範例三 使用 DNS 查詢 IP
//可輸入本機號碼 Jason-PC 將獲得IP: 192.168.1.143
//也可以輸入tw.yahoo.com 將獲得IP: 202.43.192.109
string DoMainName = "tw.yahoo.com";
IPHostEntry hostEntry = Dns.GetHostEntry(DoMainName);
// 由於主機有可能有一個以上的 (別名)Alias
// 因此程式中以迴圈方式判斷 Aliases
string[] aliasList = hostEntry.Aliases;
for (int i = 0; i <= aliasList.Length - 1; i++)
{
Console.WriteLine("Alias " + i + " : " + aliasList[i]);
}
// 由於主機有可能有一個以上的 IP Address
// 因此程式中以迴圈方式判斷 AddressList
IPAddress[] addrList = hostEntry.AddressList;//DNS轉IP
for (int i = 0; i <= addrList.Length - 1; i++)
{
Console.WriteLine("Address " + i + " : " + addrList[i]);
}
Console.ReadLine();
範例四:剖析網址 URL
// 由於 DOS 的命令列會以 & 符號做命令分隔字元,因此、若以指令模式下,網址中的 & 之後會被視為是下一個指令
System.Uri URL = new System.Uri("http://findbook.tw/search?keyword_type=keyword&t=xxx");
// System.Uri URL = new System.Uri(args[0]);
// System.Uri類別之屬性
Console.WriteLine("AbsolutePath: " + URL.AbsolutePath);
Console.WriteLine("AbsoluteUri: " + URL.AbsoluteUri);
Console.WriteLine("Authority: " + URL.Authority);
Console.WriteLine("Host: " + URL.Host);
Console.WriteLine("Port: " + URL.Port);
Console.WriteLine("LocalPath: " + URL.LocalPath);
Console.WriteLine("IsDefaultPort: " + URL.IsDefaultPort);
Console.WriteLine("IsFile: " + URL.IsFile);
Console.WriteLine("PathAndQuery: " + URL.PathAndQuery);
Console.WriteLine("Query: " + URL.Query);
Console.WriteLine("Scheme: " + URL.Scheme);
Console.WriteLine("UserEscaped: " + URL.UserEscaped);
Console.WriteLine("UserInfo: " + URL.UserInfo);
Console.ReadLine();
//結語
//微軟 C# 的 IP 層物件主要是 IPAddress 與 IPEndPoint,
//另外 IPHostEntry可以用來代表 URL,也可以用 Dns.GetHostEntry()
//查詢主機名稱。這些是 C# 較常使用的 IP 層物件。