Penukaran alamat IPv4 kepada integer dalam C#
Soalan:
Bagaimana untuk menukar alamat IPv4 dengan cekap kepada integer dalam C#? Selain itu, sila berikan kaedah untuk melakukan transformasi terbalik.
Jawapan:
Dalam C#, alamat IPv4 pada dasarnya diwakili sebagai integer tidak bertanda 32-bit. Jadi, secara teknikalnya, tiada penukaran eksplisit diperlukan. Walau bagaimanapun, untuk mendapatkan nilai integer asas anda boleh menggunakan langkah berikut:
Sebagai contoh, untuk menukar alamat IPv4 "64.233.187.99" kepada integer, anda akan menggunakan kod berikut:
<code class="language-csharp">long intValue = (long)(uint)IPAddress.NetworkToHostOrder( (int)IPAddress.Parse("64.233.187.99").Address);</code>
Begitu juga, untuk menukar integer kembali kepada alamat IPv4, anda boleh menggunakan langkah berikut:
Sebagai contoh, untuk menukar integer 1089059683 kembali kepada alamat IPv4, anda akan menggunakan kod berikut:
<code class="language-csharp">string addressString = IPAddress.Parse(1089059683.ToString()).ToString(); // 注意这里需要将整数转换为字符串再进行解析 ``` 或者更简洁的写法: ```csharp string addressString = new IPAddress(1089059683).ToString(); // 直接使用IPAddress构造函数</code>
Sila ambil perhatian bahawa dalam sekeping kod kedua, objek IPAddress dibina terus menggunakan integer sebagai parameter tanpa penukaran eksplisit kepada rentetan. Kedua-dua kaedah boleh mencapai matlamat, dan kaedah kedua adalah lebih ringkas dan cekap.
Atas ialah kandungan terperinci Bagaimana dengan Cekap Menukar Alamat IPv4 kepada Integer dan Sebaliknya dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!