给100分,各位大虾,如何设置ip地址立即生效

wsjdouble 2002-07-31 02:38:00
各位大虾:
调用什么函数能使设置ip地址立即生效?
急!!急!!
...全文
185 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
explorer007 2002-08-02
  • 打赏
  • 举报
回复
WinExec()
ShellExecute()
再不即就上CreateProcess(),hoho
wsjdouble 2002-08-01
  • 打赏
  • 举报
回复
我没有使用过shell API
能不能给我一点例子;
谢谢!
wsjdouble 2002-08-01
  • 打赏
  • 举报
回复
我是在嵌入式环境下使用,在这种环境下都这两个函数都可以使用,但有一点,不能把当前的ip改掉,只能在ip列表中增加新的ip地址,这也是我遇到的问题。
还有一点,能不能给我函数GetAdaptersInfo所获得参数信息的详细解释
以及和适配器索引ID和IP场景编号之间的对应关系,我一直对这个搞不明白

在线等待
谢谢各位!
explorer007 2002-08-01
  • 打赏
  • 举报
回复
在Win2000下面,可以用IP Helper Functions. 祥见MSDN->Platform Sdk Documentation->Networking and Directory Service->Network protocol->Internet Protocol Helper.
 
  重点看一下AddIPAddress 和 DeleteIPAddress。

  下面文章讲述了这2个APIs.

INFO: AddIPAddress and DeleteIPAddress in IP Helper APIs (Q199749)
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q199749

  但在Win2000上使用有2个限制。

  1. RRAS should not be running;

  2. Only good for changing non-base IP addresses.

  实际上DeleteIPAddress仅能删除由AddIPAddress添加的IP。

  在Win2000上,有一个命令行工具NETSH可以用来改变IP动态的地址。

  http://support.microsoft.com/default.aspx?scid=kb;EN-US;q257748

  你可以使用Shell API 来执行这个命令动态改变静态IP地址
zijingzelan168 2002-07-31
  • 打赏
  • 举报
回复
r让我找找
zhangdaqiang 2002-07-31
  • 打赏
  • 举报
回复
AddIpAddress和DeleteIpAddress IP助手函数。使用这两个函数时,需要知道网络适配器的索引编号和IP场景编号。Windows中,每个网络适配器都有一个独一无二的索引ID,而且,每个IP地址都有一个独一无二的场景ID。适配器索引ID和IP场景编号都可通过GetAdaptersInfo获得。AddIpAddress函数的定义如下:
DWORD AddIpAddress(
IPAddr Address,
IPMask IpMask,
DWORD IfIndex,
PULONG NTEContext,
PULONG NTEInstance
);
siphonelee 2002-07-31
  • 打赏
  • 举报
回复
up
dy_paradise 2002-07-31
  • 打赏
  • 举报
回复
不太懂,帮你up了
wsjdouble 2002-07-31
  • 打赏
  • 举报
回复
以上的ADDIPADDRESS函数我调用过,但只能在IP列表中添加新的IP值
不能设置为当前的IP值,怎样才能让IP立即生效呢?
而且新添加的IP不能替代已有的IP值,我怎么样才能用新的值来代替旧的值?
baixc 2002-07-31
  • 打赏
  • 举报
回复
up
waterstream 2002-07-31
  • 打赏
  • 举报
回复
呵呵,不太可能吧,好像不能实现呀?!
wsjdouble 2002-07-31
  • 打赏
  • 举报
回复
我还是没有明白NTEContext参数的意思,
我不明白这个参数要俯什么样的值;
从 GetAdaptersInfo函数中获得一组值,他和哪个值才是关联的呢?

举个例子
可以吗?
explorer007 2002-07-31
  • 打赏
  • 举报
回复
AddIpAddress和DeleteIpAddress IP助手函数。使用这两个函数时,需要知道网络适配器的索引编号和IP场景编号。Windows中,每个网络适配器都有一个独一无二的索引ID,而且,每个IP地址都有一个独一无二的场景ID。适配器索引ID和IP场景编号都可通过GetAdaptersInfo获得。AddIpAddress函数的定义如下:
DWORD AddIpAddress(
IPAddr Address,
IPMask IpMask,
DWORD IfIndex,
PULONG NTEContext,
PULONG NTEInstance
);
Address参数把准备增添的I P地址指定为一个无符号的长整数值。IpMask参数把I P地址的子网掩码指定为一个无符号的长整数值。IfIndex参数指定准备增添地址的适配器索引。
NTEContext参数取得与所增添的IP地址关联的场景值。NTEInstance参数取得与一个IP地址关联的实例值。
如果想通过编程删除适配器的IP地址,调用DeleteIpAddress函数即可。它的定义如下:
DWORD DeleteIPAddress(
ULONG NTEContext
);
NTEContext参数是与IP地址关联的值,这个值可从GetAdaptersInfo中得到。

如果是从DCHP服务器处获得的IP地址,可以用IPRenewAddress,定义如下:
DWORD IpRenewAddress(
PIP_ADAPTER_INDEX_MAP AdapterInfo
);
wsjdouble 2002-07-31
  • 打赏
  • 举报
回复
能不能给点源码?
或者函数的属性的详细的定义
explorer007 2002-07-31
  • 打赏
  • 举报
回复
有的,有的

有专用的api,等我查查.....
sans 2002-07-31
  • 打赏
  • 举报
回复
好像没有办法,ip地址是系统启动时同硬件绑定的,属于驱动一层的东西了。

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧