Board logo

标题: [已结]如何用批处理获得PPP拨号连接的IP地址 [打印本页]

作者: Macadd     时间: 2006-10-1 10:12    标题: [已结]如何用批处理获得PPP拨号连接的IP地址

如何用批处理获得PPP拨号连接的IP地址?

[ Last edited by HAT on 2008-10-15 at 20:44 ]
作者: namejm     时间: 2006-10-1 11:22
  不知道你获得PPP拨号连接的IP地址做何用途,以"IP"为关键字搜索了一下相关的讨论,贴上几条搜索结果,楼主可以去看看:

  1、怎么用BAT文件设置IP地址和DNS?
  2、批处理如何获得本机的IP和MAC地址然后进行绑定?
  3、转贴:如何在命令行下更改ip地址
  4、请教如何写BAT获取计算机名、工作组名和IP地址
  ……
作者: redtek     时间: 2006-10-1 11:33
dos提示符下键入   IPCONFIG    回车,就可以看到向下面类似的IP地址以及其它信息。

IPCONFIG 是看当前IP地址信息的命令
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\WINDOWS>ipconfig

Windows IP Configuration


Ethernet adapter 无线网络 Intel:

        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 192.168.0.12
        Subnet Mask . . . . . . . . . . . : 255.255.0.0
        Default Gateway . . . . . . . . . : 192.168.0.1

Ethernet adapter 本地连接:

        Media State . . . . . . . . . . . : Media disconnected

作者: 3742668     时间: 2006-10-1 11:36
1.WMIC
wmic nicconfig where Description="WAN (PPP/SLIP) Interface" get ipaddress
在命令行中输入应该就可以看到PPP拨号的IP了。
2.netsh
netsh diag show ip 1
一般来说,netsh显示IP会把PPP拨号的IP显示在前,所以show ip 1应该能够实现目的,同样的,如果用show ip 2则会显示网卡的IP。(若有哪位的IP排列和我的相反请吱一声,我这没条件测试。)
3.ipconfig
@echo off
    for /f "tokens=2 delims=:" %%i in ('ipconfig ^|findstr /i "ip address"') do set ip=%%i
    echo %ip%
pause
和netsh相反,ipconfig在显示IP的时候会把网卡IP显示在前面,所以只要获得后面的IP就可以得到我们需要的IP。
作者: electronixtar     时间: 2006-10-1 11:40
%appdata%\Microsoft\Network\Connections\Pbk\rasphone.pbk
%systemroot%\System32\Ras
这两个文件夹里有很关键的文件,可以用for来分析
作者: Macadd     时间: 2006-10-2 10:50
谢谢3742668 版主

不过

wmic nicconfig where Description="WAN (PPP/SLIP) Interface" get ipaddress
'wmic' 不是内部或外部命令,也不是可运行的程序或批处理文件。

netsh diag show ip 1
下列命令没有找到: diag show ip 1。

在登录时选择拨号连接时ipconfig在显示IP的时候会把 PPP拨号连接的 IP显示在前面

请指教!!


namejm 版主 介绍的帖子都看过,帮助不大。
作者: pengfei     时间: 2006-10-2 10:55
楼主把ipconfig的显示贴出来看看.
作者: 3742668     时间: 2006-10-2 11:09
莫非你装的是home版的XP?home版的XP是没有WMI组件的,也就没有WMIC了,或许netsh命令的执行不成功也与它有关。
我的测试环境为专业版 SP2,请说明你的系统环境。
作者: Macadd     时间: 2006-10-3 09:06
谢谢了,我用其他办法吧
作者: jastyg     时间: 2006-10-7 03:18
我的环境:3片网卡,2个PPPOE连接,也就是5个连接,上次给朋友做ADSL双线(网通,电信同时上网)的部分脚本:
@echo off
ipconfig/all >>iptable.txt
for /f "skip=48 tokens=2 delims=:" %%i in (iptable.txt) do  echo %%i >>2.txt
set /p ip=<2.txt
echo %ip%
pause
del *.txt >nul

如果你要用的话要根据你的实际情况改一下就可以的,你只需要把skip=48,这个数值改为你需要IP在iptable.txt里的行数就可以了。

[ Last edited by jastyg on 2006-10-7 at 03:21 ]
作者: amtf15     时间: 2008-10-15 20:35
路过,学习了