Semasa pengurusan rangkaian atau penyahpepijatan aplikasi, selalunya perlu mendapatkan alamat IP pelayan. Artikel ini bertujuan untuk menjelaskan sintaks dan menyediakan cara yang dioptimumkan untuk mendapatkan maklumat ini.
Untuk menentukan alamat IP luaran komputer anda (kelihatan kepada Internet), gunakan kod berikut:
<code class="language-csharp">string externalIP = new WebClient().DownloadString("https://ipv4.icanhazip.com/");</code>
Kod ini menggunakan perkhidmatan "iCanHazIP" untuk mendapatkan alamat IP awam pelayan.
Untuk mendapatkan semula alamat IP dalaman pelayan (dalam rangkaian tempatan), gunakan teknik berikut:
<code class="language-csharp">string localIP = Dns.GetHostEntry(Dns.GetHostName()).AddressList.Where(ip => ip.AddressFamily == AddressFamily.InterNetwork).FirstOrDefault()?.ToString();</code>
Kod ini berulang pada senarai alamat IP yang dikaitkan dengan nama hos pelayan dan memilih alamat yang sepadan dengan keluarga alamat IPv4.
Kod yang disediakan dalam soalan adalah pendekatan yang sah, tetapi kebolehbacaan dan kecekapannya boleh dipertingkatkan. Versi diubah suai berikut menggabungkan penambahbaikan ini:
<code class="language-csharp">string localIP = null; var host = Dns.GetHostEntry(Dns.GetHostName()); foreach (var ip in host.AddressList) { if (ip.AddressFamily == AddressFamily.InterNetwork) { localIP = ip.ToString(); break; } }</code>
Versi ini menggunakan struktur gelung yang lebih jelas dan mengendalikan situasi di mana FirstOrDefault()
mungkin mengembalikan null, mengelakkan kemungkinan pengecualian. Ia terus melelang senarai alamat IP dan keluar dari gelung serta-merta selepas mencari alamat IPv4 pertama, meningkatkan kecekapan.
Atas ialah kandungan terperinci Bagaimana dengan cekap mendapatkan alamat IP dalaman dan luaran pelayan di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!