使用C#,我尝试使用ManageDHCP.dll设置dhcp选项12。简而言之,这就是我正在做的事情:
var dhcpManager = new DHCPManager(dhcpServerName)
var hostRecord = new HostInfo
{
Name = deviceDhcpName,
IPv4 = deviceIpAddress,
IsReserved = true,
MAC = deviceMacAddress
};
dhcpManager.SetRecord(dhcpServerScope, hostRecord);
String hostName = deviceDhcpName + "." + dnsZoneName;
var hostnameOpt = new Option
{
ID = 12,
Values = new List<string> { hostName }
};
dhcpManager.SetOption(hostnameOpt, dhcpServerScope, deviceIpAddress);
问题是,它只是在此时死亡,而且日志不会记录异常。所以我想也许我发送它的格式不正确。所以我去尝试获得一个选项。因此,在创建预订后,使用上面的SetRecord
函数 - 我调用了这个,只是为了尝试查看是否可以选择查看正确的格式:
Option test = dhcpManager.GetOption(3, dhcpServerScope, deviceIpAddress);
抛出此异常:
ManageDHCP.DhcpException:DhcpGetOptionInfo 在ManageDHCP.DHCPManager._GetOption(OptionTarget target,UInt32 optionID,String subnet,String reservedIP)
我是C#的新手,我不确定导致此异常的原因。 Here是ManageDHCP源代码的链接。我究竟做错了什么?我的格式不正确吗?
答案 0 :(得分:0)
似乎32位dll的setOption函数不起作用(DhcpGetOptionInfo抛出异常),所以我切换到64位dll。