Nous faisons un petit tableau de bord pour récupérer et afficher la liste des serveurs DHCP dans un réseau local, puis obtenir les informations d'étendue telles que les adresses IP utilisées et non utilisées. en utilisant .NET de préférence C#. Comment cela pourrait-il être rendu possible?Récupération de la liste des serveurs DHCP de Windows et des informations de portée de chaque serveur DHCP utilisant .NET
2
A
Répondre
0
J'ai essayé de faire quelque chose de similaire une fois (avec Windows 2003) et j'ai constaté qu'il n'y avait aucun objet/classe .net pour un serveur DHCP. J'ai trouvé cette http://bytes.com/topic/net/answers/574937-managing-dhcp-servers-using-c-another-net-lang mais c'était au-delà de mon niveau de codage ..
Bonne chance
0
Une excellente bibliothèque de fonctions DHCP - DYNAMIC HOST CONFIGURATION PROTOCOL WEB SERVICES by Jason Rupard
Il n'a pas l'énumération des serveurs DHCP là-dedans, donc J'ai montré comment le faire ci-dessous. Tout ce dont vous avez besoin devrait déjà être là.
[DllImport("dhcpsapi.dll", CharSet = CharSet.Unicode)]
internal static extern UInt32 DhcpEnumServers(
UInt32 Flags, // Should be 0
IntPtr IdInfo, // Should be null
out IntPtr Servers,
IntPtr CallbackFn, // Should be null
IntPtr CallbackData // Should be null
);
[DllImport("dhcpsapi.dll")]
internal static extern void DhcpRpcFreeMemory(IntPtr BuffPtr);
[StructLayoutAttribute(LayoutKind.Sequential)]
public struct DHCP_SERVER_INFO_ARRAY
{
public UInt32 Flags;
public UInt32 NumElements;
public IntPtr Servers;
}
[StructLayoutAttribute(LayoutKind.Sequential)]
public struct DHCP_SERVER_INFO
{
public UInt32 Version;
[MarshalAsAttribute(UnmanagedType.LPWStr)]
public string ServerName;
public UInt32 ServerAddress;
public UInt32 Flags;
public UInt32 State;
[MarshalAsAttribute(UnmanagedType.LPWStr)]
public string DsLocation;
public UInt32 DsLocType;
}
public class DhcpServer
{
public string Name;
public DhcpIpAddress IpAddress;
public string AdLocation;
public static List<DhcpServer> EnumAll()
{
var servers = new List<DhcpServer>();
IntPtr retPtr;
var response = NativeMethods.DhcpEnumServers(0, IntPtr.Zero, out retPtr, IntPtr.Zero, IntPtr.Zero);
if (response != 0)
{
if (retPtr != IntPtr.Zero)
{
NativeMethods.DhcpRpcFreeMemory(retPtr);
}
throw new DhcpException(response);
}
var nativeArray = (DHCP_SERVER_INFO_ARRAY) Marshal.PtrToStructure(retPtr, typeof (DHCP_SERVER_INFO_ARRAY));
var current = nativeArray.Servers;
for (var i = 0; i < nativeArray.NumElements; ++i)
{
var nativeClient = (DHCP_SERVER_INFO) Marshal.PtrToStructure(current, typeof (DHCP_SERVER_INFO));
servers.Add(ConvertFromNative(nativeClient));
current = (IntPtr) ((int) current + Marshal.SizeOf(typeof(DHCP_SERVER_INFO)));
}
NativeMethods.DhcpRpcFreeMemory(retPtr);
return servers;
}
private static DhcpServer ConvertFromNative(DHCP_SERVER_INFO nativeServer)
{
var server = new DhcpServer
{
IpAddress = new DhcpIpAddress(nativeServer.ServerAddress),
Name = nativeServer.ServerName,
AdLocation = nativeServer.DsLocation
};
return server;
}
}
Questions connexes
- 1. Détection de serveurs DHCP distants dans .NET
- 2. Un client DHCP de base
- 3. Obtenir l'adresse MAC d'IP en utilisant DHCP?
- 4. paquet de requête DHCP en C#
- 5. Interrogation d'un serveur DHCP en C#
- 6. Toute bibliothèque dhcp python?
- 7. Post script de connexion pointant vers le nouveau serveur dhcp
- 8. Python récupération des informations de service Windows
- 9. Le serveur DHCP peut-il indiquer une durée de bail supérieure à celle demandée par le client DHCP?
- 10. Comment modifier le masque de sous-réseau et l'indicateur DHCP activé dans C++ et Windows XP
- 11. Redémarrage de DHCP-Server entraîne un gâchis d'adresses IP-Client
- 12. Paramètre DHCP sous Mac OS X
- 13. Affichage des informations et récupération des résultats en utilisant Ajax
- 14. Pourquoi avoir DHCP et adresse IP statique en même temps?
- 15. Récupérer par programme des informations de carte réseau déconnecté dans .NET
- 16. Récupération des informations antivirus
- 17. opc .net api liste des serveurs
- 18. récupération des informations exécutables
- 19. Nouveau sur les applets et les serveurs. Façons de stocker des informations sur le côté serveur?
- 20. Créer une réservation DHCP par programmation en C#
- 21. SVN - Récupération des informations utiles
- 22. Récupération par programme des informations d'en-tête de fonction
- 23. Récupération des informations de session active depuis IIS 7
- 24. Acquisition d'une adresse IP à partir du serveur dhcp pour mon application C# - Like Virtual Machines
- 25. Récupération des informations des applications externes
- 26. Comment obtenir la liste des serveurs Domino sur un réseau utilisant .NET?
- 27. Détecter si IP est statique ou obtenu à partir de DHCP sur busybox
- 28. Récupération de la liste des instances de Sql Server sur le PC local et le réseau
- 29. problème de récupération de carte des listes
Salut Ben, j'avais visité ce site auparavant, je voulais juste un peu plus de perspicacité dans ce. Merci quand même!!! –
nbtstat -A MICROSOFT_DHCP_SRV_IP –