Delphi 调用netsh命令修改IP地址
Delphi 调用netsh命令修改IP地址
先介绍一下Netsh命令的使用方法:
在这里跟大家介绍几个简单的指令
1.Show IP
1.1Cmd Mode
直接在cmd下面输入
netsh interface ip show address
亦可简写为
netsh int ip sh ad
看看,指令是不是和Cisco的nos指令很像!非常怀疑是抄袭Cisco的。 1.2Netsh Mode
您也可以进入netsh的命令模式下
netsh //进入到 netsh mode
netsh>int //进入到 interface 子选项。
interface>ip //進入到 ip 子选项。
interface ip>show
show address - 显示 IP 位址。
show config - 显示 IP 位址及其他资料。
show dns - 显示 DNS 服务器位址。
show icmp - 显示 ICMP 统计
show interface - 显示 IP 介面统计
show ipaddress - 显示 IP 位址
show ipnet - 显示 IP net-to-media 对应
show ipstats - 显示 IP 统计
show joins - 显示加入的多点传送群组
show offload - 显示 offload 内容
show tcpconn - 显示 TCP 连线
show tcpstats - 显示 TCP 统计
show udpconn - 显示 UDP 连线
show udpstats - 显示 UDP 统计
show wins - 显示 WINS 服务器位址。
2.Set IP
下列是所有可用的指令。
这个內容中的指令:
set address - 在指定的介面设定 IP 位址或预设网关。
set dns - 设定 DNS 服务器模式及位址。
set wins - 设定 WINS 服务器模式及位址。2.1.设定IP位址
2.1.1.DHCP设定
若您希望由DHCP取得IP位址可输入
interface ip>set ad "区域连接" DHCP
或简写成
interface ip>set ad "区域连接" D2.1.2.静态IP设定
2.1.2.1.设定IP位址与子网关
netsh -进入到 netsh mode
netsh>int -进入到 interface 子选项。
interface>ip -进入到 ip 子选项。
interface ip>set address name = "区域连接" source = static addr = 10.2.2.100 mask = 255.255.255.0
可简写成
interface ip>set ad "区域连接" s 10.2.2.100 255.255.255.02.1.2.2.设定IP路由
interface ip>set address name = "区域连接" gateway = 10.2.2.254 gwmetric = 1
可简写成
interface ip>set ad "区域连接" ga=10.2.2.254 gw = 12.1.2.3同时设定IP位址和路由
interface ip>set address name = "区域连接" source = static addr = 10.2.2.100 mask = 255.255.255.0 gateway = 10.2.2.254 gwmetric = 1
可简写成
interface ip>set ad "区域连接" s 10.2.2.100 255.255.255.0 10.2.2.254 1设定完後,记得用sh ad去看一下设定的對不對。2.3设定DNS来源
若是由DHCP取得,请输入
interface ip>set dns "区域连接" source=dhcp
若是使用静态设定,请输入
interface ip>set dns name = "区域连接" source = static addr = 10.2.5.2
新增第二組DNS,请输入
interface ip>add dns name = "区域连接" addr = 10.2.5.32.4设定WINS来源
若是由DHCP取得,请输入
interface ip>set wins "区域连接" source=dhcp
若是使用静态设定,请输入
interface ip>set wins name = "区域连接" source = static addr = 10.2.5.10
新增第二組WINS,请输入
interface ip>add wins name = "区域连接" addr = 10.2.5.17
3.将网路状态设定导出/导入
3.1导出
netsh -c interface dump >c:/netset.txt
当然,interface可以简写成int,dump更可简化成d,所以就变成了
netsh -c int d >c:/netset.txt
3.2导入
netsh -f c:/netset.txt 既可在Delphi中调用过程:
//设置成自动获取IP:
NetShTxt := 'netsh interface ip set address ' + '"' + NetWork + '"' + ' source=dhcp';
winexec(pchar(NetShTxt), sw_hide);
//以下代码设置IP地址和网关:
NetShTxt := 'netsh interface ip set address name=' + '"' + NetWork + '"' + ' source=static addr=' + IPAddress.IPString + ' mask=' + submask.IPString;
winexec(pchar(NetShTxt), sw_hide);
//网关
NetshTxt := 'netsh interface ip set address name=' + '"' + NetWork + '"' + ' gateway=' + DefaultGateway.IPString + ' gwmetric=0';
winexec(pchar(NetShTxt), sw_hide);
其中使用了IPEdit,这个组件,经过修改,已经基本能用于IP地址的输入和获取.本来从网上下载的以为能用,可实际用的过程中会发现不少问题.
设置DNS:
NetshTxt := 'netsh interface ip set dns name=' + '"' + NetWork + '"' + ' source=static addr=' + FirstDns.IPString + ' register=PRIMARY';
winexec(pchar(NetShTxt), SW_Hide);
//netsh interface ip add dns name="本地连接" addr=你的DNS的IP地址 index=2
NetshTxt := 'netsh interface ip add dns name=' + '"' + NetWork + '"' + ' addr=' + SecondDNS.IPString + ' index=2';
注意以上第二个DNS,添加用的命令:
//netsh interface ip add dns name="本地连接" addr=你的DNS的IP地址 index=2
第三个DNS:
//netsh interface ip add dns name="本地连接" addr=你的DNS的IP地址 index=3后期调用winExec执行,感觉很不错,注意生成后使用GetAdaptersInfo函数进行检查一下IP地址是否设置正确.
在网络上流传的好多类似的工具都是这个原理.
winexec('netsh interface ip set address 本地连接1 dhcp',SW_HIDE);
设为手工ip
WinExec('netsh interface ip set address 本地连接1 static 192.168.1.189 255.255.255.0 192.168.1.1 1',SW_HIDE);
shellexecute(handle,'','netsh interface ip set address ' + SRegedit +
'static 192.168.0.1 255.255.255.0 192.168.0.10 1',nil,nil,sw_hide)
Delphi 调用netsh命令修改IP地址的更多相关文章
- Windows 系统采用批处理命令修改 ip 地址
Windows 系统采用批处理命令修改 ip 地址 :: 设置IP地址 set /p choice=请选择设置类型(1:外网IP / 2:内网IP / 3:自动获取IP): echo. if &quo ...
- linux下使用命令修改IP地址
使用root用户登录进入Linux,打开进去终端 在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0 (最后的eth0是网卡名,我的是Auto_et ...
- 使用命令修改ip地址
简述:以serverv 2012 r2为例 常用的几种,当然不全,希望能较快的速率记下一种便可 直接配置 1. 查看网卡的显示名称 2. 配置静态iP地址 3. 查看配置 ...
- 利用netsh命令设置IP地址/DNS服务器地址
一.设置IP地址 1. 自动获取IP地址: netsh interface ip set address [name=]"本地连接" [source=]dhcp 2. 手动设置IP ...
- windows 7 命令修改IP地址
netsh interface ip set address "本地连接" static 172.17.15.97 255.255.255.0 172.17.12.1
- CMD修改IP地址
在操作系统下,我们可以使用"本地连接"的属性来修改IP地址,但是如果我们要在多个IP地址之间切换,使用这种方法未免过于麻烦.我们可以使用NETSH命令来添加,相当简便.使用DOS修 ...
- 如何用脚本快速修改IP地址(Netsh)
如何用脚本快速修改IP地址(Netsh) 如果通过Windows的网络属性修改Ip/网关,真是太麻烦了.最近一个项目经常要切换ip,所以我写了两个脚本:c:\116.bat netsh interfa ...
- Netsh命令-修改网络IP设置
原文链接地址:https://blog.csdn.net/qq_38054198/article/details/77990914 静态设置IP 修改IP地址addr和子网掩码mask: \>n ...
- CentOS(RedHat)命令行永久修改IP地址、网关、DNS
1.修改IP地址vim /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0 #网卡名称BOOTPROTO=static #获取ip的方式(stat ...
随机推荐
- 在线学习SQL语句?没问题~~
以前弄得少,没注意.. http://sqlfiddle.com/ CREATE TABLE Presidents ( Id INT UNSIGNED NOT NULL AUTO_INCREMENT, ...
- 利用link标签rel="alternate stylesheet"属性实现界面动态换肤
rel="stylesheet"属性指定将一个样式表立即应用到文档.rel="alternate stylesheet"属性将其作为备用样式表而在默认情况下禁用 ...
- SaaS系列介绍之五: 我国SaaS市场分析
1 我国SaaS市场现状 我国SaaS从ASP年代发展到今天,也有不少时间了.我国是个十几亿人的大国,国情复杂,各地贫富不均,发展不平衡.信息系统建设也是各树一帜,各地为王.特别是占有大量用户的中小企 ...
- 最短路径算法之四——SPFA算法
SPAF算法 求单源最短路的SPFA算法的全称是:Shortest Path Faster Algorithm,该算法是西南交通大学段凡丁于1994年发表的. 它可以在O(kE)的时间复杂度内求出源点 ...
- 在C++中调用DLL中的函数
如何在C++中调用DLL中的函数 应用程序使用DLL可以采用两种方式:一种是隐式链接,另一种是显式链接.在使用DLL之前首先要知道DLL中函数的结构信息.Visual C++6.0在VC\bin目录下 ...
- 【HDOJ】4418 Time travel
1. 题目描述K沿着$0,1,2,\cdots,n-1,n-2,n-3,\cdots,1,$的循环节不断地访问$[0, n-1]$个时光结点.某时刻,时光机故障,这导致K必须持续访问时间结点.故障发生 ...
- poj 2635 The Embarrassed Cryptographer(数论)
题目:http://poj.org/problem?id=2635 高精度求模 同余模定理. 题意: 给定一个大数K,K是两个大素数的乘积的值.再给定一个int内的数L 问这两个大素数中最小的一个是 ...
- POJ3921
搜索 每次找出最短路 如果小于等于k 那么必定这里有一点是要被删掉的 枚举这个最短路径上的每一个点 (一般不会超过20) 将其相邻边删除 用dijskra求最短路径并且保存即可 深度搜索 #inclu ...
- WCF 服务调用RFC 出现异常
我在VS2010的WCF项目用connecter 3.0 调用 RFC 运行到 IDestinationConfiguration ID = new SAPConfig(); ...
- I.MX6 android 移除shutdown功能
/************************************************************************ * I.MX6 android 移除shutdown ...