Vous devrait utiliser la classe IPAddress. Cela vous gênera un peu car il essaie de vous empêcher de prendre une dépendance aux adresses IP4. Le membre Adresse est déclaré obsolète. Voici la solution:
using System;
using System.Net;
class Program {
static void Main(string[] args) {
var addr = IPAddress.Parse("192.168.0.2");
int ip4 = BitConverter.ToInt32((addr.GetAddressBytes()), 0);
Console.WriteLine("{0:X8}", ip4);
Console.ReadLine();
}
}
Sortie: 0200A8C0
Notez que l'adresse est en bon ordre de réseau (grand-boutiste).
Qu'essayez-vous de faire exactement? C# a déjà des wrappers autour de la pile IP entière - vous ne devriez pas avoir besoin de P/Invoke. –
J'ai un wrapper dans une librairie C++, je viens de lire la documentation pour utiliser la librairie, mais les exemples sont en code C++, ce que je ne comprends pas assez à certains endroits. Sur place est-ce lors de la définition d'une adresse IP dans un champ de type DWORD où mon wrapper a comme champ int. Je me demande donc comment convertir la chaîne d'adresse IP (etc. "192.168.0.2") et le mettre dans le champ int. –
Il pourrait aider votre question si vous nous avez montré le code C++ et le code C# où vous êtes coincé. –