c#动态改IP地址
最近看到几个C++版的动态改IP的例子想改成C#的,主要是用了DhcpNotifyConfigChange 这个未公开的函数
这是c#版的调用
[DllImport("dhcpcsvc.dll")]
public static extern bool DhcpNotifyConfigChange(
string lpwszServerName, // 本地机器为NULL
string lpwszAdapterName, // 适配器名称
bool bNewIpAddress, // TRUE表示更改IP
long dwIpIndex, // 指明第几个IP地址,如果只有该接口只有一个IP地址则为0
long dwIpAddress, // IP地址
long dwSubNetMask, // 子网掩码
long nDhcpAction ); // 对DHCP的操作 0:不修改, 1:启用 DHCP,2:禁用 DHCP
ip和网关要转化成long类型我找了个转化的函数,可是好像不行,请大家帮忙指导一下,谢谢了
private long IpToLLong(string ip)
{
char[] dot = new char[] { '.' };
string[] ipArr = ip.Split(dot);
if (ipArr.Length == 3)
ip = ip + ".0";
ipArr = ip.Split(dot);
long ip_Int = 0;
long p1 = long.Parse(ipArr[0]) * 256 * 256 * 256;
long p2 = long.Parse(ipArr[1]) * 256 * 256;
long p3 = long.Parse(ipArr[2]) * 256;
long p4 = long.Parse(ipArr[3]);
ip_Int = p1 + p2 + p3 + p4;
return ip_Int;
}