답변:
이를위한 기본 제공 명령이 없습니다. 문제는 라우터를 통해 인터넷에 연결되어있을 때 네트워크 하드웨어가 인터넷에 직접 연결되어 있지 않기 때문에 시스템에 IP가 특별히 할당되어 있지 않다는 것입니다. 많은 회사 네트워크가 설정되어 있기 때문에 리버스 프록시 뒤에있는 경우 경우에 따라 여러 개의 외부 IP를 가질 수도 있습니다. 가장 좋은 방법은 whatismyip.org 를 쿼리 하거나 이미 존재하는지 확인 하는 스크립트를 만드는 것입니다.
(팁으로 whatismyip.org는 IP를 일반 텍스트로 반환하기 때문에 대부분의 다른 솔루션보다 선호됩니다. 불필요한 텍스트, 링크, 이미지 또는 기타 가비지가 없습니다. 대부분의 경우보다 사용자 정의 스크립트에서 사용하는 것이 훨씬 쉽습니다 다른 IP 탐지 사이트.)
HTTP 요청 대신 DNS 요청을 사용하여 퍼블릭 IP를 찾을 수 있습니다.
C:\> nslookup myip.opendns.com. resolver1.opendns.com
그것은 사용하는 resolver1.opendns.com
마법 해결하기 위해 DNS 서버 myip.opendns.com.
에 호스트 이름 당신의 IP 주소를. (참고 : .
조회 의 후행 은 검색 도메인이 추가되지 않도록하여 잘못된 결과를 생성 할 수 있습니다.)
유닉스 버전 :
$ dig +short myip.opendns.com @resolver1.opendns.com
http://curl.haxx.se/download.htmlcurl
에서 자신의 사본을 가져온 다음
curl "http://myexternalip.com/raw"
또는 powershell을 사용하십시오.
$wc = new-object System.Net.WebClient
$wc.DownloadString("http://myexternalip.com/raw")
(면책 조항 : http://myexternalip.com 은 내가 만든 것입니다)
이름이 지정된 파일을 작성하고 다음에 파일 ip.vbs
을 복사하십시오.
Option Explicit
Dim http : Set http = CreateObject( "MSXML2.ServerXmlHttp" )
http.Open "GET", "http://icanhazip.com", False
http.Send
Wscript.Echo http.responseText 'or do whatever you want with it
Set http = Nothing
를 사용하여 실행
C:\>cscript ip.vbs
Nhinkle이 지적했듯이 HTML + 광고 등이 아닌 IP 만 반환하는 사이트를 선택하는 것이 가장 좋습니다.
(출처 : 이전 http://externip.com/about )
이 배치 스크립트를 몇 달 전에 수행했습니다.
@echo off
:: WhatIsMyIP.cmd - returns public IP address
:: requires: wget.exe
if [%1]==[-h] goto :HELP
if [%1]==[--help] goto :HELP
if [%1]==[/?] goto :HELP
wget -q -O %temp%\MyIP http://www.whatismyip.com/automation/n09230945.asp
for /f "delims= " %%G in (%temp%\myip) do set PublicIP=%%G & del %temp%\MyIP
echo. & echo Your public IP address is %PublicIP% & echo.
if [%1]==[--clip] echo %PublicIP% | clip
goto :EOF
:HELP
echo. & echo Usage: whatismyip [--clip] & echo.
goto :EOF
:EOF
IP 주소를 클립 보드에 넣는 옵션을 제공하고 환경 변수를 설정합니다 %PublicIP%
.
SIMPLER 방법 :
이제, 나는 대신에 이것을한다 :
curl icanhazip.com
또는...
curl icanhazip.com | clip
... 현재 공개 IP 주소를 클립 보드로 가져옵니다.
cURL 이 필요합니다 .
Powershell 3.0 (Windows 7 기본값은 2.0)을 사용하면 Invoke-WebRequest
IPv4의 경우 :
$tmp =Invoke-WebRequest -URI http://myip.dnsomatic.com/
$tmp.Content
IPv6의 경우 :
$tmp =Invoke-WebRequest -URI http://myexternalip.com/raw
$tmp.Content
이렇게하면 특정 작업을 수행 할 수있는 변수가 제공됩니다. 실제로 이것을 사용하여 라우터의 동적 IP를 주기적으로 업로드하고 정기적으로 다른 컴퓨터 테스트 통신을 수행 한 다음 최신 IP로 DNS를 업데이트하여 스크립트를 작성하여 어디서나 장비에 액세스 할 수 있습니다. 끊임없이 IP를 쫓아내는 대신 이름을 사용합니다.
물론 사이트가 변경되거나 출력이 변경되면 이에 따라 업데이트해야합니다. :)
powershell.exe -noprofile -command ""
. 줄 바꿈을 세미콜론으로 구분하십시오.
(Invoke-WebRequest -URI http://myip.dnsomatic.com).Content
시도해보십시오 :
어떤 종류의 외부 소프트웨어도 설치할 필요가 없습니다.
@set @script=0 /*
@echo off
set @script=
cscript //nologo //e:jscript "%~dpnx0"
exit /b
*/
with (new ActiveXObject('Microsoft.XMLHTTP')) {
open('GET', 'http://internet.yandex.ru/', false);
send();
WScript.echo(responseText.match(/IPv4:\s(\d+\.){3}\d+/g));
}
Telnet이 기본적으로 제공되지 않기 때문에 Windows에 타사 프로그램이 없으면 어렵지만, XP가 있거나 켜져 있으면 (Windows Vista 이상) 다음을 입력하십시오.
telnet curlmyip.com 80
화면이 깜박이고 커서가 나타납니다 ... 다음 유형 :
GET
대문자로 표시하면 헤더가 표시되고 IP가 표시됩니다 (죄송합니다)
여기에 다른 답변은 분명히 작동하지만 타사 프로그램없이 모든 창에서 사용할 수있는 것에 대한 질문을 계속하려고합니다!
Windows Vista 이상의 경우을 통해 텔넷을 쉽고 안전하게 설치 Programs and features
하거나 다음 명령을 사용할 수 있습니다.
pkgmgr /iu:”TelnetClient”
curlmyip.com
테스트했습니다 checkip.dyndns.org
.
타사 도구를 설치하지 않고 Windows에서 작동하는 솔루션을 원했습니다 . 그래서 나는 매시간마다 스크립트를 실행 해야하는 powershell 옵션을 사용했습니다.
메모장으로이 스크립트를 작성합니다
$wc = new-object System.Net.WebClient
$ip = $wc.DownloadString("http://myexternalip.com/raw")
$LogTime = Get-Date -Format "MM-dd-yyyy_hh-mm-ss"
Add-Content C:\Users\Administrator\Desktop\logs\IPLog.txt $LogTime
Add-Content C:\Users\Administrator\Desktop\logs\IPLog.txt "`n"
Add-Content C:\Users\Administrator\Desktop\logs\IPLog.txt $ip
Add-Content C:\Users\Administrator\Desktop\logs\IPLog.txt "`n"
getIP.ps1
어딘가에 저장하십시오 . 이 스크립트를 powershell에서 직접 호출하거나 작업 플래너를 사용하여 수행 할 수 있습니다. 다음을 실행하는 명령입니다.
powershell -executionpolicy bypass -File C:\Users\Administrator\Desktop\getIP.ps1
작업 스케줄러에서 새 작업을 만듭니다. 에서 트리거 당신은 설정을 사용하는 모든 1 일 매일 고급 옵션에서 당신이 선택하는 즉시 기간 동안 매 시간마다 . 설정 에서 예약 된 시작이 누락 된 후 가능한 빨리 작업 실행을 확인 하십시오 . 아래 작업 당신은 위의 실행 코드를 붙여 넣습니다.
Powershell 코드가 최적화되어 있지 않습니다. Powershell 전문가가 아니기 때문입니다 (처음으로 처음 사용). 이제 스크립트가 매시간 호출되는지 테스트하고 있습니다.
ipchicken.com은 라우터의 외부 IP를 추출하는 반환 HTML을 구문 분석 할 수 있으면 텍스트 형식으로 IP 주소를 반환합니다. 또는 명백한 외부 IP를 FQDN으로 업데이트하는 동적 DNS 에이전트 중 하나를 설치 한 다음 FQDN에서 nslookup을 수행하여 현재 IP 번호를 확인할 수 있습니다. 예전에는 DynDNS와 같은 무료 제품이 있었지만 대부분 유료 구독 계정이 필요합니다.