我找不到合适的了....另外,怎样写入新的IP,网关,DNS...

解决方案 »

  1.   

    using   System; 
    using   System.Management; 
    namespace   Soyee.Comm 

    ///   <summary> 
    ///   Computer   Information 
    ///   </summary> 
    public   class   Computer 

    public   string   CpuID; 
    public   string   MacAddress; 
    public   string   DiskID; 
    public   string   IpAddress; 
    public   string   LoginUserName; 
    public   string   ComputerName; 
    public   string   SystemType; 
    public   string   TotalPhysicalMemory;   //单位:M 
            private   static   Computer   _instance; 
    public   static   Computer   Instance() 

    if   (_instance   ==   null) 
    _instance   =   new   Computer(); 
    return   _instance; 

    protected     Computer() 

    CpuID=GetCpuID(); 
    MacAddress=GetMacAddress(); 
    DiskID=GetDiskID(); 
    IpAddress=GetIPAddress(); 
    LoginUserName=GetUserName(); 
    SystemType=GetSystemType(); 
    TotalPhysicalMemory=GetTotalPhysicalMemory(); 
    ComputerName=GetComputerName(); 

    string     GetCpuID() 

    try 

    //获取CPU序列号代码 
    string   cpuInfo   =   " ";//cpu序列号 
    ManagementClass   mc   =   new   ManagementClass( "Win32_Processor "); 
    ManagementObjectCollection   moc   =   mc.GetInstances(); 
    foreach(ManagementObject   mo   in   moc) 

    cpuInfo   =   mo.Properties[ "ProcessorId "].Value.ToString(); 

    moc=null; 
    mc=null; 
    return   cpuInfo; 

    catch 

    return   "unknow "; 

    finally 

    } } 
    string     GetMacAddress() 

    try 

    //获取网卡硬件地址 
    string   mac= " "; 
    ManagementClass   mc   =   new   ManagementClass( "Win32_NetworkAdapterConfiguration "); 
    ManagementObjectCollection   moc   =   mc.GetInstances(); 
    foreach(ManagementObject   mo   in   moc) 

    if((bool)mo[ "IPEnabled "]   ==   true) 

    mac=mo[ "MacAddress "].ToString(); 
    break; 


    moc=null; 
    mc=null; 
    return   mac; 

    catch 

    return   "unknow "; 

    finally 

    } } 
    string     GetIPAddress() 

    try 

    //获取IP地址 
    string   st= " "; 
    ManagementClass   mc   =   new   ManagementClass( "Win32_NetworkAdapterConfiguration "); 
    ManagementObjectCollection   moc   =   mc.GetInstances(); 
    foreach(ManagementObject   mo   in   moc) 

    if((bool)mo[ "IPEnabled "]   ==   true) 

    //st=mo[ "IpAddress "].ToString(); 
    System.Array   ar; 
    ar=(System.Array)(mo.Properties[ "IpAddress "].Value); 
    st=ar.GetValue(0).ToString(); 
    break; 


    moc=null; 
    mc=null; 
    return   st; 

    catch 

    return   "unknow "; 

    finally 

    } } 
      
    string     GetDiskID() 

    try 

    //获取硬盘ID 
    String   HDid= " "; 
    ManagementClass   mc   =   new   ManagementClass( "Win32_DiskDrive "); 
    ManagementObjectCollection   moc   =   mc.GetInstances(); 
    foreach(ManagementObject   mo   in   moc) 

    HDid   =   (string)mo.Properties[ "Model "].Value; 

    moc=null; 
    mc=null; 
    return   HDid; 

    catch 

    return   "unknow "; 

    finally 

    } } ///   <summary> 
    ///   操作系统的登录用户名 
    ///   </summary> 
    ///   <returns> </returns> 
    string     GetUserName() 

    try 

    string   st= " "; 
    ManagementClass   mc   =   new   ManagementClass( "Win32_ComputerSystem "); 
    ManagementObjectCollection   moc   =   mc.GetInstances(); 
    foreach(ManagementObject   mo   in   moc) 
    { st=mo[ "UserName "].ToString(); } 
    moc=null; 
    mc=null; 
    return   st; 

    catch 

    return   "unknow "; 

    finally 

    } } 
    ///   <summary> 
    ///   PC类型 
    ///   </summary> 
    ///   <returns> </returns> 
    string     GetSystemType() 

    try 

    string   st= " "; 
    ManagementClass   mc   =   new   ManagementClass( "Win32_ComputerSystem "); 
    ManagementObjectCollection   moc   =   mc.GetInstances(); 
    foreach(ManagementObject   mo   in   moc) 
    { st=mo[ "SystemType "].ToString(); } 
    moc=null; 
    mc=null; 
    return   st; 

    catch 

    return   "unknow "; 

    finally 

    } } ///   <summary> 
    ///   物理内存 
    ///   </summary> 
    ///   <returns> </returns> 
    string     GetTotalPhysicalMemory() 

    try 
    { string   st= " "; 
    ManagementClass   mc   =   new   ManagementClass( "Win32_ComputerSystem "); 
    ManagementObjectCollection   moc   =   mc.GetInstances(); 
    foreach(ManagementObject   mo   in   moc) 
    { st=mo[ "TotalPhysicalMemory "].ToString(); } 
    moc=null; 
    mc=null; 
    return   st; 

    catch 

    return   "unknow "; 

    finally 



    ///   <summary> 
    ///   
    ///   </summary> 
    ///   <returns> </returns> 
    string     GetComputerName() 

    try 

    return   System.Environment.GetEnvironmentVariable( "ComputerName "); 

    catch 

    return   "unknow "; 

    finally 





      

  2.   

    因为不止一个网卡,还有多个虚拟连接,所以根据已知IP或者MAC来确定对应的网关是哪个...
      

  3.   

    这个调用dos命令,我会啊…呵呵。我编个批处理文件 
    如下:
     

    @echo off
    cd \
    echo windows快速更改ip地址和网关(三个确定就OK)
    rem ****************************************************
    rem   请修改下面的设置
    rem NIC是网络连接名,一般为"本地连接"或"本地连接 2"等
    rem IP是网卡ip地址,GW是默认网关
    rem MASK是子网掩码
    rem DNS1和DNS2分别是首选和备用DNS服务器
    rem ****************************************************
    set NIC="本地连接"
    set IP="192.168.10.130"
    set GW="200.200.200.1"
    set MASK="255.255.255.0"
    set DNS="202.103.224.68"
    set WINS="202.103.225.68"
    echo --------------------------------
    echo 下面将把网卡%NIC%设为如下地址:        
    echo IP地址:          %IP%
    echo 子网掩码:        %MASK%
    echo 默认网关:        %GW%
    echo 首选DNS服务器: %DNS1%
    echo 备用DNS服务器:   %DNS2%
    echo --------------------------------
    echo 开始设置网卡,请稍等数秒......
    netsh interface ip set address %NIC% static %IP% %MASK% %GW% 1
    echo 开始设置DNS......
    netsh interface ip set dns %NIC% static %DNS% primary
    netsh interface ip set wins %NIC% %WINS%
    echo 设置完毕!
    写成form也是一样,就是调用dos命令就可以了…
      

  4.   

    @echo off
    @cd \
    @set NIC="本地连接"
    @set IP="192.168.10.130"
    @set GW="200.200.200.1"
    @set MASK="255.255.255.0"
    @set DNS="202.103.224.68"
    @set WINS="202.103.225.68"
    @netsh interface ip set address %NIC% static %IP% %MASK% %GW% 1
    rem interface可以简略为 i
    @netsh i ip set dns %NIC% static %DNS% primary
    @netsh i ip set wins %NIC% static %WINS% pause命令也就这么一点
      

  5.   

    杀毒软件有可能阻止调用dos指令.....请用其他方式吧....是已知固定IP,找这个固定IP对应的默认网关。