有一个addipaddress,有3个问题1。不能设置gateway
2。设置结果不能保存
3。如网卡原来有ip,不能替换,只能添加请高人指点

解决方案 »

  1.   

    参看MSDN WINIPHLP(WINDOWS IP HELPER FUNCTIONS)
    以上问题都可以解决
      

  2.   

    目前只解决了半个问题:
    可以设gateway了,用的是CreateIpForwardEntry(),把dest=0的row的nexthop设成gateway,不知道对不对?问题是如果有多块网卡,怎么设定指定的网卡?
    2,3没解决,再给点儿提示吧
      

  3.   

    我认为首先应得到所有网卡的物理信息,最主要的是MAC,然后匹配想要修改的网卡的索引号(在IpHlpApi的一套API中为固定),然后再以单个网卡的形式进行修改.Mi$soft Platform SDK 安装中包含了许多例子,可以参考。
    互相学习。
      

  4.   

    另外一个方法是SNMP协议如果你遇到WIN9X兼容性问题限制了某些函数的使用,把WIN2K的DLL拷到你程序所在目录就可以了。CreateIpForwardEntry是改路由表啊
    关于网卡是"IF"(interface)的函数
      

  5.   

    CreateIpForwardEntry是从msdn windows ce的例子里学的,有一段例子代码叫“Changing the Default Gateway”,用的就是CreateIpForwardEntry,调用后用ipconfig看,是有一块网卡的gateway变了,但不是我想要变的那块:-(
    我再看看interface的帮助
      

  6.   

    和interface有关的set只有一个,SetIfEntry,但里面没有ip什么的
      

  7.   

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iphlp/iphlp/ip_helper_functions.asp
      

  8.   

    to flywhc(午夜蓝调) 你能肯定用ip helper里的函数就能解决我说的3个问题?Interface里只有一个SetIfEntry()
    但是IF_ROW里没有ip、gateway
      

  9.   

    SORRY,不能肯定。我用这些函数读取过所有的这些信息,但没有写过
    另外用SNMP也读过。理论上能读就能写
    另外在注册表里能读到这些信息,如果修改再重新启动的话也许可用
      

  10.   

    thanks,flywhc(午夜蓝调) 继续up
      

  11.   

    解决了,用netsh,win2000有效,不用注册表,不用重起,爽!!!
    详见http://support.microsoft.com/support/kb/articles/Q257/7/48.ASP
      

  12.   

    To: dope(吊儿郎当) 我用了这个方法, 可总是出错, 不知道为什么, 能详细的说一下么?D:\>netsh interface ip set address name = "本地连接" source = static addr = 192.168.0.192指定了无效的接口 本地连接。