如何编程修改本机的IP地址?
如何编程,能实现修改本机的IP地址?(原来有IP要设置成“自动获取”,还有原来是自动获取要设置IP),就实现上述两项功能,最好有程序说明,语言不限,但要能生成可执行文件就...
如何编程,能实现修改本机的IP地址?(原来有IP要设置成“自动获取”,还有原来是自动获取要设置IP),就实现上述两项功能,最好有程序说明,语言不限,但要能生成可执行文件就行,重赏!
注名用的什么语言编写的,并说明如何生成可执行文件! 展开
注名用的什么语言编写的,并说明如何生成可执行文件! 展开
3个回答
展开全部
C:\Documents and Settings>netsh
netsh>interface
netsh interface>ip
netsh interface ip>add address "本地连接" 192.168.10.5 255.255.255.0 192.168.10.1 1
确定。
netsh interface ip>
C:\Documents and Settings>netsh
netsh>interface
netsh interface>ip
netsh interface ip>?
下列指令有效:
命令从 netsh 上下文继承:
.. - 移到上一层上下文级。
abort - 丢弃在脱机模式下所做的更改。
add - 在项目列表上添加一个配置项目。
alias - 添加一个别名
bridge - 更改到 `netsh bridge' 上下文。
bye - 退出程序。
commit - 提交在脱机模式中所做的更改。
delete - 在项目列表上删除一个配置项目。
diag - 更改到 `netsh diag' 上下文。
exit - 退出程序。
interface - 更改到 `netsh interface' 上下文。
offline - 将当前模式设置成脱机。
online - 将当前模式设置成联机。
popd - 从堆栈上打开一个上下文。
pushd - 将当前上下文放推入堆栈。
quit - 退出程序。
ras - 更改到 `netsh ras' 上下文。
routing - 更改到 `netsh routing' 上下文。
set - 更新配置设置。
show - 显示信息
unalias - 删除一个别名。
命令从 netsh interface 上下文继承:
add - 向表中添加一个配置项目。
delete - 从表中删除一个配置项目。
ip - 更改到 `netsh interface ip' 上下文。
reset - 复位信息。
set - 设置配置信息。
show - 显示信息。
此上下文中的命令:
? - 显示命令列表。
add - 向表中添加一个配置项目。
delete - 从表中删除一个配置项目。
dump - 显示一个配置脚本。
help - 显示命令列表。
reset - 复位 TCP/IP 及相关的组件到干净的状态。
set - 设置配置信息。
show - 显示信息。
若需要命令的更多帮助信息,请键入命令,
后面跟 ?。
netsh interface ip>set
下列指令有效:
命令从 netsh 上下文继承:
set file - 复制控制台输出到文件。
set machine - 设置用来操作的当前计算机。
set mode - 设置当前模式为联机或脱机。
此上下文中的命令:
set address - 设置指定的接口的 IP 地址或默认网关。
set dns - 设置 DNS 服务器模式和地址。
set wins - 设置 WINS 服务器模式和地址。
netsh interface ip>set dns "本地连接" static 61.18.34.69
确定。
netsh interface ip>add
下列指令有效:
命令从 netsh 上下文继承:
add helper - 安装一个助手 DLL。
此上下文中的命令:
add address - 添加一个 IP 地址到指定的接口。
add dns - 添加一个静态 DNS 服务器地址。
add wins - 添加一个静态 WINS 服务器地址。
netsh interface ip>add dns
用法: add dns [name=] [addr=] [[index=]]
参数:
标记 值
name - 添加 DNS 服务器的接口的名称。
addr - 添加的 DNS 服务器的 IP 地址。
index - 为指定的 DNS 服务器地址指定索引(首选项)。
注释: 把一个新的 DNS 服务器 IP 地址添加到静态配置的列表中。
默认情况下,这个DNS 服务器被添加在列表的结尾。如果指定一个索引,DNS 服
务器将被置于列表中指定的位置,其他服务器将被移后留出空间。如果 DNS 服务器以前是
通过 DHCP 获取的,这个新的地址将取代旧的列表。
示例:
add dns "Local Area Connection" 10.0.0.1
add dns "Local Area Connection" 10.0.0.3 index=2
netsh interface ip>add dns "本地连接" 61.18.39.63
确定。
netsh interface ip>
注:设置第二个DNS的时候就不能用set命令了,否则会盖掉第一个DNS配置,应该使用add dns子命令!
NetSh 命令
list 列出所有可用的 WINS 命令。
dump 将 WINS 服务器配置转储到命令输出。
add name 在服务器上注册名称。详细信息,请输入 add name /?
add partner 向服务器添加复制伙伴。详细信息,请输入 add partner /?
add pngserver 添加当前服务器的 Persona Non Grata 服务器列表。详细信息,请输入 add pngserver /?
check database 检查数据库的一致性。详细信息,请输入 check database /?
check name 检查一组 WINS 服务器的名称记录列表。详细信息,请输入 check name /?
check version 检查版本号的一致性。详细信息,请输入 check version /?
delete name 从服务器数据库中删除已注册的名称。详细信息,请输入 delete name /?
delete partner 从复制伙伴列表中删除复制伙伴。详细信息,请输入 delete partner /?
delete records 从服务器删除或逻辑删除所有记录或一组记录。详细信息,请输入 delete records /?
delete owners 删除所有者列表及其记录。详细信息,请输入 delete owners /?
delete pngserver 从列表中删除所有的或选定的 Persona Non Grata 服务器。详细信息,请输入 delete pngserver /?
init backup 备份 WINS 数据库。详细信息,请输入 init backup /?
init import 从 Lmhosts 文件导入数据。详细信息,请输入 init import /?
init pull 启动“拉”触发器,并发送给另一台 WINS 服务器。详细信息,请输入 init pull /?
init pullrange 开始另一台 WINS 服务器的一组记录,并读取该记录。详细信息,请输入 init pullrange /?
init push 启动“推”触发器,并发送给另一台 WINS 服务器。详细信息,请输入 init push /?
init replicate 用复制伙伴复制数据库。详细信息,请输入 init replicate /?
init restore 从文件还原数据库。详细信息,请输入 init restore /?
init scavenge 清除服务器的 WINS 数据库。详细信息,请输入 init scavenge /?
init search 搜索服务器的 WINS 数据库。详细信息,请输入 init search /?
reset statistics 重置服务器的统计信息。详细信息,请输入 reset statistics /?
set autopartnerconfig 设置服务器的自动复制伙伴配置信息。详细信息,请输入 set autopartnerconfig /?
set backuppath 设置服务器的备份参数。详细信息,请输入 set backuppath /?
set burstparam 设置服务器的突发处理参数。详细信息,请输入 set autopartnerconfig /?
set logparam 设置数据库和事件日志记录选项。详细信息,请输入 set logparam /?
set migrateflag 设置服务器的迁移标志。详细信息,请输入 set migrateflag /?
set namerecord 设置服务器的间隔和超时值。详细信息,请输入 set namerecord /?
set periodicdbchecking 设置服务器的定期数据库检查参数。详细信息,请输入 set periodicdbchecking /?
set pullpartnerconfig 设置指定的“拉”伙伴的配置参数。详细信息,请输入 set pullpartnerconfig /?
set pushpartnerconfig 设置指定的“推”伙伴的配置参数。详细信息,请输入 set pushpartnerconfig /?
set pullparam 设置服务器的默认“拉”参数。详细信息,请输入 set pullparam /?
set pushparam 设置服务器的默认“推”参数。详细信息,请输入 set pushparam /?
set replicateflag 设置服务器的复制标志。详细信息,请输入 set replicateflag /?
set startversion 设置数据库的开始版本 ID。详细信息,请输入 set startversion /?
show browser 显示所有活动域主浏览器的 [1Bh] 记录。详细信息,请输入 show browser /?
show database 显示指定服务器的数据库和记录。详细信息,请输入 show database /?
show info 显示配置信息。详细信息,请输入 show info /?
show name 显示服务器中特定记录的详细信息。详细信息,请输入 show name /?
show partner 显示服务器的“拉”或“推”(或“推拉”)伙伴。详细信息,请输入 show partner /?
show partnerproperties 显示默认伙伴配置。详细信息,请输入 show partnerproperties /?
show pullpartnerconfig 显示“拉”伙伴的配置信息。详细信息,请输入 show pullpartnerconfig /?
show pushpartnerconfig 显示“推”伙伴的配置信息。详细信息,请输入 show pushpartnerconfig /?
show reccount 显示指定服务器所拥有的记录数量。详细信息,请输入 show reccount /?
show recbyversion 显示指定服务器所拥有的记录。详细信息,请输入 show recbyversion /?
show server 显示当前选定的服务器。详细信息,请输入 show server /?
show statistics 显示 WINS 服务器的统计信息。详细信息,请输入 show statistics /?
show version 显示 WINS 服务器的当前版本计数器值。详细信息,请输入 show version /?
show versionmap 显示所有者 ID 到“最大版本数”的映射。详细信息,请输入 show versionmap /?
Interface 命令
interface set/show interface 启用、禁用、连接、断开连接以及显示请求拨号接口的配置。
interface set/show credentials 在请求拨号接口上配置或显示用户名、密码和域名。
netsh>interface
netsh interface>ip
netsh interface ip>add address "本地连接" 192.168.10.5 255.255.255.0 192.168.10.1 1
确定。
netsh interface ip>
C:\Documents and Settings>netsh
netsh>interface
netsh interface>ip
netsh interface ip>?
下列指令有效:
命令从 netsh 上下文继承:
.. - 移到上一层上下文级。
abort - 丢弃在脱机模式下所做的更改。
add - 在项目列表上添加一个配置项目。
alias - 添加一个别名
bridge - 更改到 `netsh bridge' 上下文。
bye - 退出程序。
commit - 提交在脱机模式中所做的更改。
delete - 在项目列表上删除一个配置项目。
diag - 更改到 `netsh diag' 上下文。
exit - 退出程序。
interface - 更改到 `netsh interface' 上下文。
offline - 将当前模式设置成脱机。
online - 将当前模式设置成联机。
popd - 从堆栈上打开一个上下文。
pushd - 将当前上下文放推入堆栈。
quit - 退出程序。
ras - 更改到 `netsh ras' 上下文。
routing - 更改到 `netsh routing' 上下文。
set - 更新配置设置。
show - 显示信息
unalias - 删除一个别名。
命令从 netsh interface 上下文继承:
add - 向表中添加一个配置项目。
delete - 从表中删除一个配置项目。
ip - 更改到 `netsh interface ip' 上下文。
reset - 复位信息。
set - 设置配置信息。
show - 显示信息。
此上下文中的命令:
? - 显示命令列表。
add - 向表中添加一个配置项目。
delete - 从表中删除一个配置项目。
dump - 显示一个配置脚本。
help - 显示命令列表。
reset - 复位 TCP/IP 及相关的组件到干净的状态。
set - 设置配置信息。
show - 显示信息。
若需要命令的更多帮助信息,请键入命令,
后面跟 ?。
netsh interface ip>set
下列指令有效:
命令从 netsh 上下文继承:
set file - 复制控制台输出到文件。
set machine - 设置用来操作的当前计算机。
set mode - 设置当前模式为联机或脱机。
此上下文中的命令:
set address - 设置指定的接口的 IP 地址或默认网关。
set dns - 设置 DNS 服务器模式和地址。
set wins - 设置 WINS 服务器模式和地址。
netsh interface ip>set dns "本地连接" static 61.18.34.69
确定。
netsh interface ip>add
下列指令有效:
命令从 netsh 上下文继承:
add helper - 安装一个助手 DLL。
此上下文中的命令:
add address - 添加一个 IP 地址到指定的接口。
add dns - 添加一个静态 DNS 服务器地址。
add wins - 添加一个静态 WINS 服务器地址。
netsh interface ip>add dns
用法: add dns [name=] [addr=] [[index=]]
参数:
标记 值
name - 添加 DNS 服务器的接口的名称。
addr - 添加的 DNS 服务器的 IP 地址。
index - 为指定的 DNS 服务器地址指定索引(首选项)。
注释: 把一个新的 DNS 服务器 IP 地址添加到静态配置的列表中。
默认情况下,这个DNS 服务器被添加在列表的结尾。如果指定一个索引,DNS 服
务器将被置于列表中指定的位置,其他服务器将被移后留出空间。如果 DNS 服务器以前是
通过 DHCP 获取的,这个新的地址将取代旧的列表。
示例:
add dns "Local Area Connection" 10.0.0.1
add dns "Local Area Connection" 10.0.0.3 index=2
netsh interface ip>add dns "本地连接" 61.18.39.63
确定。
netsh interface ip>
注:设置第二个DNS的时候就不能用set命令了,否则会盖掉第一个DNS配置,应该使用add dns子命令!
NetSh 命令
list 列出所有可用的 WINS 命令。
dump 将 WINS 服务器配置转储到命令输出。
add name 在服务器上注册名称。详细信息,请输入 add name /?
add partner 向服务器添加复制伙伴。详细信息,请输入 add partner /?
add pngserver 添加当前服务器的 Persona Non Grata 服务器列表。详细信息,请输入 add pngserver /?
check database 检查数据库的一致性。详细信息,请输入 check database /?
check name 检查一组 WINS 服务器的名称记录列表。详细信息,请输入 check name /?
check version 检查版本号的一致性。详细信息,请输入 check version /?
delete name 从服务器数据库中删除已注册的名称。详细信息,请输入 delete name /?
delete partner 从复制伙伴列表中删除复制伙伴。详细信息,请输入 delete partner /?
delete records 从服务器删除或逻辑删除所有记录或一组记录。详细信息,请输入 delete records /?
delete owners 删除所有者列表及其记录。详细信息,请输入 delete owners /?
delete pngserver 从列表中删除所有的或选定的 Persona Non Grata 服务器。详细信息,请输入 delete pngserver /?
init backup 备份 WINS 数据库。详细信息,请输入 init backup /?
init import 从 Lmhosts 文件导入数据。详细信息,请输入 init import /?
init pull 启动“拉”触发器,并发送给另一台 WINS 服务器。详细信息,请输入 init pull /?
init pullrange 开始另一台 WINS 服务器的一组记录,并读取该记录。详细信息,请输入 init pullrange /?
init push 启动“推”触发器,并发送给另一台 WINS 服务器。详细信息,请输入 init push /?
init replicate 用复制伙伴复制数据库。详细信息,请输入 init replicate /?
init restore 从文件还原数据库。详细信息,请输入 init restore /?
init scavenge 清除服务器的 WINS 数据库。详细信息,请输入 init scavenge /?
init search 搜索服务器的 WINS 数据库。详细信息,请输入 init search /?
reset statistics 重置服务器的统计信息。详细信息,请输入 reset statistics /?
set autopartnerconfig 设置服务器的自动复制伙伴配置信息。详细信息,请输入 set autopartnerconfig /?
set backuppath 设置服务器的备份参数。详细信息,请输入 set backuppath /?
set burstparam 设置服务器的突发处理参数。详细信息,请输入 set autopartnerconfig /?
set logparam 设置数据库和事件日志记录选项。详细信息,请输入 set logparam /?
set migrateflag 设置服务器的迁移标志。详细信息,请输入 set migrateflag /?
set namerecord 设置服务器的间隔和超时值。详细信息,请输入 set namerecord /?
set periodicdbchecking 设置服务器的定期数据库检查参数。详细信息,请输入 set periodicdbchecking /?
set pullpartnerconfig 设置指定的“拉”伙伴的配置参数。详细信息,请输入 set pullpartnerconfig /?
set pushpartnerconfig 设置指定的“推”伙伴的配置参数。详细信息,请输入 set pushpartnerconfig /?
set pullparam 设置服务器的默认“拉”参数。详细信息,请输入 set pullparam /?
set pushparam 设置服务器的默认“推”参数。详细信息,请输入 set pushparam /?
set replicateflag 设置服务器的复制标志。详细信息,请输入 set replicateflag /?
set startversion 设置数据库的开始版本 ID。详细信息,请输入 set startversion /?
show browser 显示所有活动域主浏览器的 [1Bh] 记录。详细信息,请输入 show browser /?
show database 显示指定服务器的数据库和记录。详细信息,请输入 show database /?
show info 显示配置信息。详细信息,请输入 show info /?
show name 显示服务器中特定记录的详细信息。详细信息,请输入 show name /?
show partner 显示服务器的“拉”或“推”(或“推拉”)伙伴。详细信息,请输入 show partner /?
show partnerproperties 显示默认伙伴配置。详细信息,请输入 show partnerproperties /?
show pullpartnerconfig 显示“拉”伙伴的配置信息。详细信息,请输入 show pullpartnerconfig /?
show pushpartnerconfig 显示“推”伙伴的配置信息。详细信息,请输入 show pushpartnerconfig /?
show reccount 显示指定服务器所拥有的记录数量。详细信息,请输入 show reccount /?
show recbyversion 显示指定服务器所拥有的记录。详细信息,请输入 show recbyversion /?
show server 显示当前选定的服务器。详细信息,请输入 show server /?
show statistics 显示 WINS 服务器的统计信息。详细信息,请输入 show statistics /?
show version 显示 WINS 服务器的当前版本计数器值。详细信息,请输入 show version /?
show versionmap 显示所有者 ID 到“最大版本数”的映射。详细信息,请输入 show versionmap /?
Interface 命令
interface set/show interface 启用、禁用、连接、断开连接以及显示请求拨号接口的配置。
interface set/show credentials 在请求拨号接口上配置或显示用户名、密码和域名。
今至电子科技有限公司
2024-08-13 广告
2024-08-13 广告
上海今至电子科技有限公司,是一家从事运维服务、系统集成和网络工程的专业公司。业务涵盖IT解决方案、网络工程、应用软件开发、系统集成、服务器虚拟化、桌面虚拟化、高性能运算、负载均衡、数据容灾备份、服务外包、IT运维等。我们的理念:诚信为本,服...
点击进入详情页
本回答由今至电子科技有限公司提供
展开全部
/* C++ /*
#include <windows.h>
#include <stdio.h>
#include <iphlpapi.h>
void Usage(void) {
printf("Usage: Ipchange [ -l ] [ -a -n<index id> -i<ip address> -m<subnet mask> ] "
"[ -d -c<context id>]\n\n"
"\t -l List adapter index IDs and IP Address context ID information\n"
"\t -a Add IP Address option\n"
"\t -d Delete IP Address option\n"
"\t -i IP Address to specify with -a option\n"
"\t -m Subnet Mask to specify with -a option\n"
"\t -c IP context ID for an existing IP address\n"
"\t -n Index ID of an existing network adapter\n");
}
void main(int argc, char *argv[]) {
ULONG NTEContext = 0;
ULONG NTEInstance;
IPAddr NewIP;
IPAddr NewMask;
DWORD Index;
DWORD Context;
CHAR NewIPStr[64];
CHAR NewMaskStr[64];
PIP_ADAPTER_INFO pAdapterInfo, pAdapt;
PIP_ADDR_STRING pAddrStr;
DWORD AdapterInfoSize;
DWORD Err;
BOOL OptList = FALSE;
BOOL OptAdd = FALSE;
BOOL OptDel = FALSE;
NewIPStr[0] = '\0';
NewMaskStr[0] = '\0';
Context = Index = -1;
for (int i = 1; i < argc; i++)
{
if ((argv[i][0] == '-') || (argv[i][0] == '/'))
{
switch(tolower(argv[i][1]))
{
case 'l':
OptList = TRUE;
break;
case 'a':
OptAdd = TRUE;
break;
case 'c':
if (strlen(argv[i]) > 2)
Context = atoi(&argv[i][2]);
break;
case 'd':
OptDel = TRUE;
break;
case 'i':
if (strlen(argv[i]) > 2)
strcpy(NewIPStr, &argv[i][2]);
break;
case 'm':
if (strlen(argv[i]) > 2)
strcpy(NewMaskStr, &argv[i][2]);
break;
case 'n':
if (strlen(argv[i]) > 2)
Index = atoi(&argv[i][2]);
break;
default:
printf("default\n");
Usage();
return;
}
}
else
{
printf("else\n");
Usage();
return;
}
}
// Check options
if ((OptAdd && (Index == -1 || NewIPStr[0] == '\0' || NewMaskStr[0] == '\0'))
|| (OptDel && Context == -1))
{
Usage();
return;
}
// Get sizing information about all adapters
AdapterInfoSize = 0;
if ((Err = GetAdaptersInfo(NULL, &AdapterInfoSize)) != 0)
{
if (Err != ERROR_BUFFER_OVERFLOW)
{
printf("GetAdaptersInfo sizing failed with error %d\n", Err);
return;
}
}
// Allocate memory from sizing information
if ((pAdapterInfo = (PIP_ADAPTER_INFO) GlobalAlloc(GPTR, AdapterInfoSize)) == NULL)
{
printf("Memory allocation error\n");
return;
}
// Get actual adapter information
if ((Err = GetAdaptersInfo(pAdapterInfo, &AdapterInfoSize)) != 0)
{
printf("GetAdaptersInfo failed with error %d\n", Err);
return;
}
if (OptList)
{
printf("MAC Address - Adapter\n"
"Index Context Ip Address Subnet Mask\n"
"--------------------------------------------------------------\n");
pAdapt = pAdapterInfo;
while (pAdapt)
{
for (UINT i=0; i<pAdapt->AddressLength; i++)
{
if (i == (pAdapt->AddressLength - 1))
printf("%.2X - ",(int)pAdapt->Address[i]);
else
printf("%.2X-",(int)pAdapt->Address[i]);
}
printf("%s\n", pAdapt->Description);
pAddrStr = &(pAdapt->IpAddressList);
while(pAddrStr)
{
printf("%-10.d%-10.d%-20.20s%s\n", pAdapt->Index, pAddrStr->Context, pAddrStr->IpAddress.String, pAddrStr->IpMask.String);
pAddrStr = pAddrStr->Next;
}
pAdapt = pAdapt->Next;
}
}
if (OptAdd)
{
NewIP = inet_addr(NewIPStr);
NewMask = inet_addr(NewMaskStr);
if ((Err = AddIPAddress(NewIP, NewMask, Index, &NTEContext, &NTEInstance)) != 0)
{
printf("AddIPAddress failed with error %d, %d\n", NTEContext, Err);
return;
}
}
if (OptDel)
{
if ((Err = DeleteIPAddress(Context)) != 0)
printf("DeleteIPAddress failed %d\n", Err);
}
}
#include <windows.h>
#include <stdio.h>
#include <iphlpapi.h>
void Usage(void) {
printf("Usage: Ipchange [ -l ] [ -a -n<index id> -i<ip address> -m<subnet mask> ] "
"[ -d -c<context id>]\n\n"
"\t -l List adapter index IDs and IP Address context ID information\n"
"\t -a Add IP Address option\n"
"\t -d Delete IP Address option\n"
"\t -i IP Address to specify with -a option\n"
"\t -m Subnet Mask to specify with -a option\n"
"\t -c IP context ID for an existing IP address\n"
"\t -n Index ID of an existing network adapter\n");
}
void main(int argc, char *argv[]) {
ULONG NTEContext = 0;
ULONG NTEInstance;
IPAddr NewIP;
IPAddr NewMask;
DWORD Index;
DWORD Context;
CHAR NewIPStr[64];
CHAR NewMaskStr[64];
PIP_ADAPTER_INFO pAdapterInfo, pAdapt;
PIP_ADDR_STRING pAddrStr;
DWORD AdapterInfoSize;
DWORD Err;
BOOL OptList = FALSE;
BOOL OptAdd = FALSE;
BOOL OptDel = FALSE;
NewIPStr[0] = '\0';
NewMaskStr[0] = '\0';
Context = Index = -1;
for (int i = 1; i < argc; i++)
{
if ((argv[i][0] == '-') || (argv[i][0] == '/'))
{
switch(tolower(argv[i][1]))
{
case 'l':
OptList = TRUE;
break;
case 'a':
OptAdd = TRUE;
break;
case 'c':
if (strlen(argv[i]) > 2)
Context = atoi(&argv[i][2]);
break;
case 'd':
OptDel = TRUE;
break;
case 'i':
if (strlen(argv[i]) > 2)
strcpy(NewIPStr, &argv[i][2]);
break;
case 'm':
if (strlen(argv[i]) > 2)
strcpy(NewMaskStr, &argv[i][2]);
break;
case 'n':
if (strlen(argv[i]) > 2)
Index = atoi(&argv[i][2]);
break;
default:
printf("default\n");
Usage();
return;
}
}
else
{
printf("else\n");
Usage();
return;
}
}
// Check options
if ((OptAdd && (Index == -1 || NewIPStr[0] == '\0' || NewMaskStr[0] == '\0'))
|| (OptDel && Context == -1))
{
Usage();
return;
}
// Get sizing information about all adapters
AdapterInfoSize = 0;
if ((Err = GetAdaptersInfo(NULL, &AdapterInfoSize)) != 0)
{
if (Err != ERROR_BUFFER_OVERFLOW)
{
printf("GetAdaptersInfo sizing failed with error %d\n", Err);
return;
}
}
// Allocate memory from sizing information
if ((pAdapterInfo = (PIP_ADAPTER_INFO) GlobalAlloc(GPTR, AdapterInfoSize)) == NULL)
{
printf("Memory allocation error\n");
return;
}
// Get actual adapter information
if ((Err = GetAdaptersInfo(pAdapterInfo, &AdapterInfoSize)) != 0)
{
printf("GetAdaptersInfo failed with error %d\n", Err);
return;
}
if (OptList)
{
printf("MAC Address - Adapter\n"
"Index Context Ip Address Subnet Mask\n"
"--------------------------------------------------------------\n");
pAdapt = pAdapterInfo;
while (pAdapt)
{
for (UINT i=0; i<pAdapt->AddressLength; i++)
{
if (i == (pAdapt->AddressLength - 1))
printf("%.2X - ",(int)pAdapt->Address[i]);
else
printf("%.2X-",(int)pAdapt->Address[i]);
}
printf("%s\n", pAdapt->Description);
pAddrStr = &(pAdapt->IpAddressList);
while(pAddrStr)
{
printf("%-10.d%-10.d%-20.20s%s\n", pAdapt->Index, pAddrStr->Context, pAddrStr->IpAddress.String, pAddrStr->IpMask.String);
pAddrStr = pAddrStr->Next;
}
pAdapt = pAdapt->Next;
}
}
if (OptAdd)
{
NewIP = inet_addr(NewIPStr);
NewMask = inet_addr(NewMaskStr);
if ((Err = AddIPAddress(NewIP, NewMask, Index, &NTEContext, &NTEInstance)) != 0)
{
printf("AddIPAddress failed with error %d, %d\n", NTEContext, Err);
return;
}
}
if (OptDel)
{
if ((Err = DeleteIPAddress(Context)) != 0)
printf("DeleteIPAddress failed %d\n", Err);
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询