Rumah > pembangunan bahagian belakang > C++ > Bagaimana dengan Cekap Menukar Alamat IPv4 kepada Integer dan Sebaliknya dalam C#?

Bagaimana dengan Cekap Menukar Alamat IPv4 kepada Integer dan Sebaliknya dalam C#?

Patricia Arquette
Lepaskan: 2025-01-08 13:22:41
asal
658 orang telah melayarinya

How to Efficiently Convert IPv4 Addresses to Integers and Vice Versa in C#?

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:

  1. Dapatkan sifat Alamat: Akses sifat Alamat objek IPAddress yang sepadan dengan alamat IPv4. Sifat ini mengembalikan nilai Int64, integer tidak bertanda 32-bit yang mewakili alamat.
  2. Bertukar-tukar tertib bait (pilihan): Harta Alamat mengembalikan nilai integer dalam susunan bait rangkaian, yang mungkin tidak sepadan dengan tertib bait asli seni bina komputer. Jika perlu, anda boleh menggunakan kaedah IPAddress.NetworkToHostOrder untuk menukar bait untuk mendapatkan susunan bait hos.

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

Begitu juga, untuk menukar integer kembali kepada alamat IPv4, anda boleh menggunakan langkah berikut:

  1. Buat objek IPAddress: Buat objek IPAddress menggunakan pembina IPAddress dan nilai integer.
  2. Menggunakan kaedah ToString: Panggil kaedah ToString pada objek IPAddress untuk mendapatkan perwakilan rentetan alamat IPv4.

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

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan