【问题标题】:Only get IPv4 address without the "IPv4 Address. . . . . . . . . . . :" in bat-file仅在 bat-file 中获取没有“IPv4 地址......
【发布时间】:2017-10-13 10:42:40
【问题描述】:

我将创建一个小批处理文件来将我的 IP 地址直接复制到我的剪贴板。我试过了:

@echo off
ipconfig | find "IPv4" | clip
pause

但是给了我:IPv4 Address. . . . . . . . . . . : 192.168.xx.xx。有没有办法只得到192.168.xx.xx

【问题讨论】:

    标签: batch-file command ip-address


    【解决方案1】:

    for /f "tokens=2 delims=[]" %%a in ('ping -n 1 -4 ""') do echo %%a | clip
    
    • 对本地机器("")执行ping命令,使用ipv4(-4)只发送一个数据包(-n 1

    • ping 命令的输出在for /f 命令内部处理

    • ping 输出中的第一行包括用方括号括起来的 IP 地址

    • for /f 使用方括号作为分隔符对行进行标记,并检索第二个标记

    v v(分隔符) 使用 32 字节数据 ping 计算机名 [x.x.x.x] 1 2 3(代币)

    【讨论】:

      【解决方案2】:

      这个批处理文件可以解决问题,当然也可以给你 MAC 地址!

      @echo off
      Title Get IP and MAC Address
      @for /f "delims=[] tokens=2" %%a in ('ping -4 -n 1 %ComputerName% ^| findstr [') do (
          set "MY_IP=%%a"
      )
      
      @For /f %%a in ('getmac /NH /FO Table') do  (
          @For /f %%b in ('echo %%a') do (
              If /I NOT "%%b"=="N/A" (
                  Set "MY_MAC=%%b"
              )
          )
      )
      echo Network IP : %MY_IP%
      echo MAC Address : %MY_MAC%
      pause>nul & exit
      

      【讨论】:

        【解决方案3】:

        在这里我创建了一个批处理文件。你可以根据你的要求剪掉它。

        @echo off
        ipconfig | findstr /R /C:"IPv4 Address"
        pause
        

        你可以在这里看到批处理文件的输出...

        【讨论】:

        • 问题已经显示了您的解决方案,并且 OP 搜索没有 IPv4 Address 前缀的解决方案
        • @jeb 我没有得到为什么回答的代码的结果。你不应该降低标记。而不是适当的,你让我失去了动力。
        • 如果您尝试回答一个问题(在这种情况下,这个问题是一岁的问题并且有两个好的答案),您的解决方案至少应该解决问题,如果已经有解决方案,它应该会更好或至少不同
        【解决方案4】:

        Javascript(节点)版本:

        const cp =      require( 'child_process' );
        let ipCmd =     `ipconfig | findstr /R /C:"IPv4 Address"`;
        let ip =        cp.execSync( ipCmd ).toString( );
        let returnIp =  /IPv4 Address\./i.test( ip ) 
                           ? ip.match( /\.\s\.\s\.\s:\s([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})/ )[1]
                           : 'facked';
        
        console.log( returnIp );
        

        【讨论】:

        • 问题是关于批处理文件的,使用不同的语言不是主题,否则任何语言都会有数百个答案
        猜你喜欢
        • 2017-04-16
        • 1970-01-01
        • 2010-11-06
        • 1970-01-01
        • 2010-11-19
        • 2015-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多