如何使用Windows命令提示符获取公共IP地址?

时间:2016-10-03 17:09:54

标签: windows shell ip ip-address command-prompt

在不使用任何第三方软件或依赖PowerShell的情况下通过命令提示符执行此操作的任何方法?

一个简单的命令就像在Linux / Mac上一样,我使用curl http://ipinfo.io/ip

谢谢!

8 个答案:

答案 0 :(得分:6)

在powershell中使用 Invoke-WebRequest 模块。例如:

ListAdapter

Source

编辑:我误解了这个问题,并认为你需要使用Powrshell。

cmd.exe中没有内置命令可返回公共IP地址。但你可以使用nslookup解决它,就像这样;

Invoke-WebRequest ifconfig.me/ip

OP的另一个选择:

nslookup myip.opendns.com. resolver1.opendns.com

连接后输入“GET”。

注意:Windows上默认未安装/启用telnet。

Source

答案 1 :(得分:1)

此命令对我有用:

nslookup myip.opendns.com. resolver1.opendns.com

答案 2 :(得分:0)

尝试使用普通dos批次

@echo off
nslookup myip.opendns.com resolver1.opendns.com | find "Address" >"%temp%\test1.txt"
more +1 "%temp%\test1.txt" >"%temp%\test2.txt"
set /p MyIP=<%temp%\test2.txt
del %temp%\test2.txt
set MyIP=%MyIP:~10%
echo %MyIP%

现在,%MyIP%可以回显或用作其他批量使用的变量。

答案 3 :(得分:0)

Windows / Linux版本:

import React, { Component } from 'react';

class Contact extends Component {
 constructor(props) {
    super(props);
    this.state = {
    message: '',
    email: '', 
    loading: false,
    successMessage: ''
    };
  }

handleSubmit(e) {
    e.preventDefault();
  /*global fetch */
    fetch('https://xxxxxxxxxx.execute-api.eu-west-2.amazonaws.com/xxx',{
        method: "POST",
        body: JSON.stringify(this.state),
        headers: {
          'Accept': 'application/json',
          'Content-Type': 'application/json',
        },
      }).then(
        (response) => (response.json())
       ).then((response)=>{

       if (response.status === 'success'){
        alert("Message Sent."); 
        this.resetForm();
      }else if(response.status === 'fail'){
        alert("Message failed to send.");
      }
     /*    
     if (response.ok) {
      this.setState({ successMessage: true});
     }
     */
    });
  }

  onEmailChange(event) {
    this.setState({email: event.target.value});
  }

  onMessageChange(event) {
    this.setState({message: event.target.value});
  }


  render() {
    return (
      <div className="container mt-5">
      <h3>Contact</h3>
      <form id="contact-form" onSubmit={this.handleSubmit.bind(this)} method="POST">
    <div className="form-group mt-4">
        <label htmlFor="exampleInputEmail1">Email address</label>
        <input type="email" className="form-control" required aria-describedby="emailHelp" value={this.state.email} onChange={this.onEmailChange.bind(this)} />
    </div>
    <div className="form-group">
        <label htmlFor="message">Message</label>
        <textarea className="form-control" rows="5" required value={this.state.message} onChange={this.onMessageChange.bind(this)} />
    </div>
    <button type="submit" className="btn btn-primary">Submit</button>
    { this.state.successMessage &&
      <div className="alert alert-success mt-5" role="alert">
  Your message has been successfully sent. Thanks for your message!
</div> }
    </form>
      </div>
    );
  }
}
export default Contact;

Unix版本:

nslookup myip.opendns.com resolver1.opendns.com

答案 4 :(得分:0)

这对我来说非常合适:

curl http://ip.jsontest.com/ > ip.json
for /f "tokens=2 delims=:" %%a in ('type ip.json') do (set publicip=%%a)
set publicip=%publicip:{=%
set publicip=%publicip:}=%
set publicip=%publicip:"=%
echo %publicip:~1%

答案 5 :(得分:0)

最简单的方法是遵循命令

curl "http://myexternalip.com/raw"

&您将获得公共IPV4。

答案 6 :(得分:0)

curl ip-adresim.app

它同时支持IPv4和IPv6。

答案 7 :(得分:0)

您可以在 Windows 和 Linux 中使用这些命令

<块引用>

curl ifconfig.me

Curl 是升级到最新版本时 Windows 内置的东西,所以它不称为第三方软件。

<块引用>

curl ifconfig.co

在 Linux 中,几乎发行版已经有了这个命令。

非常感谢 ArthurG 的命令。它工作得很好,可以以多种方式用于批处理脚本。