Rumah > pembangunan bahagian belakang > C++ > Bagaimana dengan cekap mendapatkan alamat IP dalaman dan luaran pelayan di C#?

Bagaimana dengan cekap mendapatkan alamat IP dalaman dan luaran pelayan di C#?

DDD
Lepaskan: 2025-01-26 06:06:08
asal
447 orang telah melayarinya

How to Efficiently Get a Server's Internal and External IP Address in C#?

Dapatkan alamat IP dalaman dan luaran pelayan dengan cekap dalam C#

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.

Sintaks untuk mendapatkan alamat IP luaran

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>
Salin selepas log masuk

Kod ini menggunakan perkhidmatan "iCanHazIP" untuk mendapatkan alamat IP awam pelayan.

Sintaks untuk mendapatkan alamat IP dalaman

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>
Salin selepas log masuk

Kod ini berulang pada senarai alamat IP yang dikaitkan dengan nama hos pelayan dan memilih alamat yang sepadan dengan keluarga alamat IPv4.

Analisis kod sebelumnya

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan