Lệnh cho quyết định của tôi chỉ IP công cộng?

Nếu tôi kiểm tra google Tôi có thể thấy IP công cộng của tôi. Có một cái gì đó trên đây là một chủ đề dòng lệnh đó sẽ mang lại cho tôi một câu trả lời?

Nếu bạn không phải đi sau một bộ định tuyến, bạn có thể tìm ra bằng cách sử dụng nó ifconfig.

Nếu bạn đang ở phía sau một bộ định tuyến, sau đó máy sẽ không biết về các địa chỉ IP công cộng như các bộ định tuyến không một địa chỉ mạng. Anh có thể hỏi một số trang web những gì các địa chỉ IP được sử dụng curl hay wget và trích xuất thông tin anh cần nó:

curl -s https://checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'  

hoặc ít hơn

curl https://ipinfo.io/ip

Cho việc tìm kiếm ip bên ngoài, bạn có thể sử dụng bên ngoài dựa trên web dịch vụ hay sử dụng hệ thống dựa trên các phương pháp. Một dễ dàng hơn là phải sử dụng những dịch vụ bên ngoài, cũng thế ifconfig dựa giải pháp sẽ làm việc trong hệ thống của bạn nếu bạn không phải đi sau một NAT. hai phương pháp đã được thảo luận dưới đây, một cách chi tiết.

Tìm bên ngoài IP sử dụng dịch vụ bên ngoài

Cách dễ nhất là sử dụng một dịch vụ bên ngoài thông qua một lệnh duyệt hoặc tải về công cụ. Kể từ khi wget là mặc định sẵn trong windows, chúng ta có thể sử dụng điều đó.
Để tìm ip của bạn, sử dụng-

$ wget -qO- https://ipecho.net/plain ; echo

Lịch sự:

Bạn cũng có thể sử dụng lynx(duyệt) hay curl ở nơi wget với sự thay đổi nhỏ để lệnh trên, để tìm ip bên ngoài.

Bằng cách sử dụng curl để tìm thấy địa chỉ ip:

$ curl https://ipecho.net/plain

Cho một tốt hơn định dạng ra sử dụng:

$ curl https://ipecho.net/plain ; echo

Một nhanh hơn (cho là nhanh nhất) sử dụng phương pháp dig với OpenDNS như giải quyết:

Các câu trả lời khác ở đây cả đi qua HTTP máy. Một số người trong số họ yêu cầu phân tích của các ra, hoặc dựa trên các người Dùng tiêu đề để làm cho các server đáp ứng trong văn bản đồng. Họ cũng thay đổi khá thường xuyên (đi xuống, thay đổi tên của họ, đưa lên quảng cáo, có thể thay đổi dạng đầu ra etc.).

  1. Hướng phản ứng giao thức được chuẩn (định dạng sẽ ở lại tương thích).
  2. Trong lịch sử DNS dịch vụ (cung cấp dịch vụ Google Công cộng rất nhiều ..) có xu hướng tồn tại lâu hơn nữa và có nhiều ổn định, mở rộng và thường nhìn sau hơn bất cứ điều gì mới hip whatismyip.com dịch vụ HTTP là nóng ngày hôm nay.
  3. (đối với những chuyên viên máy tính mà chăm sóc về vi-tối ưu), phương pháp này nên được vốn nhanh hơn (được nó chỉ bởi một vài vi giây).

Bằng cách sử dụng đào với cầu sai khi giải quyết:

$ dig +short myip.opendns.com @resolver1.opendns.com111.222.333.444

Sao chép từ: https://unix.stackexchange.com/a/81699/14497

Tìm IP bên ngoài mà không dựa vào bên dịch vụ

  • Nếu bạn biết bạn mạng diện tên

Loại sau của thiết bị đầu cuối:

$ LANG=c ifconfig <interface_name> | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'

Ở trên, thay thế <interface_name> với những tên thực tế của bạn diện, e.g: eth0, eth1, pp0 etc...

Ví Dụ Sử Dụng:

$ LANG=c ifconfig ppp0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'111.222.333.444
  • Nếu bạn không biết bạn mạng diện tên

Loại sau trong đầu của bạn (này được tên và địa chỉ ip của mỗi mạng diện trong hệ thống của bạn):

$ LANG=c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'

Ví Dụ Sử Dụng:

$ LANG=c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'lo: 127.0.0.1ppp0: 111.222.333.444

B N.: Đầu ra là chỉ và không thực tế.

Lịch sự: https://www.if-not-true-then-false.com/2010/linux-get-ip-address/

CẬP nhật

  1. LANG=c đã được thêm vào ifconfig dựa tập quán, vì vậy mà nó luôn luôn cung cấp cho các anh ra, không phân biệt của địa phương thiết lập.

Yêu thích của tôi đã luôn luôn được :

curl ifconfig.me

đơn giản dễ dàng để gõ.

Bạn sẽ phải cài đặt curl đầu tiên ;)

Nếu ifconfig.tôi đang cố gắng icanhazip.com và hoặc ipecho.net

curl icanhazip.com

hay

curl ipecho.net

icanhazip.com được yêu thích của tôi.

curl icanhazip.com

Bạn có thể yêu cầu IPv4 một cách rõ ràng:

curl ipv4.icanhazip.com

Nếu bạn không có curl bạn có thể sử dụng wget thay vào đó:

wget -qO- icanhazip.com

Tôi đã tìm thấy tất cả mọi thứ để được gây phiền nhiễu và chậm, vì vậy, tôi đã viết của riêng tôi. Nó đơn giản và nhanh chóng.

API của nó là trên http://api.ident.me/

Ví dụ:

curl ident.mecurl v4.ident.mecurl v6.ident.me

Thiết kế kỹ thuật: trong rất nhiều ng.tôi có cả Một và AAAA hồ sơ, 4.ng.tôi chỉ có Một hồ sơ, và v6.ng.tôi chỉ có một hồ sơ AAAA. Cổng 443 và 80 trên những Ip được phục vụ bởi apache, với hàng bằng cách sử dụng giấy chứng nhận được cung cấp bởi letsencrypt.org qua certbot, và với cấu hình sau (trích):

server {  […]  server_name .ident.me;  location / {    default_type text/plain;    return 200 $remote_addr;    add_header Access-Control-Allow-Origin "*";    add_header Cache-Control "no-cache, no-store, must-revalidate";  }}

Bạn có thể sử dụng riêng yêu cầu thay vì yêu cầu HTTP để tìm ra công khai của IP:

$ dig +short myip.opendns.com @resolver1.opendns.com

Nó sử dụng resolver1.opendns.com phần mềm chuyển đổi giải quyết những huyền diệu myip.opendns.com tên máy đến bạn địa chỉ ip.

Amazon, BONUS

curl https://checkip.amazonaws.com

Mẫu ra:

123.123.123.123

Cũng làm việc trên duyệt: http://checkip.amazonaws.com

Tôi thích nó, vì:

  • nó trở về chỉ cần rõ IP trong cơ thể trả lời, không có gì khác
  • nó là từ một cũng được biết đến cung cấp đó là không thể đi bất cứ lúc nào sớm nhé

Tôi đang sử dụng được :

wget -O - -q icanhazip.com

Có, bạn có thể có ip :-)

Kiểu này chính xác, nhấn Enter đó chỉ ra:

telnet ipecho.net 80Enter
GET /plain HTTP/1.1Enter
HOST: ipecho.net Enter
BROWSER: web-kitEnter
Enter

Này tay nộp một yêu cầu đó sẽ trở lại IP của bạn ở dưới đáy của một HTTP/1.1 200 OK reply

Ví dụ ra:

$ telnet ipecho.net 80Trying 146.255.36.1...Connected to ipecho.net.Escape character is '^]'.GET /plain HTTP/1.1HOST: ipecho.netBROWSER: web-kitHTTP/1.1 200 OKDate: Tue, 02 Jul 2013 07:11:42 GMTServer: ApacheExpires: Mon, 26 Jul 1997 05:00:00 GMTCache-Control: no-cachePragma: no-cacheVary: Accept-EncodingTransfer-Encoding: chunkedContent-Type: text/htmlf111.222.333.4440

Cho này, CHOÁNG được phát minh. Như một khách hàng có thể gửi một yêu cầu một công khai CHOÁNG chủ và nó có trả lại địa chỉ IP nó thấy. Sắp xếp của mức độ thấp whatismyip.com khi nó sử dụng không HTTP và không thông minh tràn ngập máy chủ nhưng tốc độ nhanh CHOÁNG giao thức.

Bằng cách sử dụng stunclient

Nếu bạn có stunclient cài đặt (apt-get install stuntman-client tương/ubuntu), bạn chỉ có thể làm:

$stunclient stun.services.mozilla.comBinding test: successLocal address: A.B.C.D:42541Mapped address: W.X.Y.Z:42541

nơi A.B.C.D được địa chỉ IP của bạn máy trên mạng và địa phương W.X.Y.Z là địa chỉ IP máy chủ trang web như nhìn từ bên ngoài (và một người bạn đang tìm kiếm). Bằng cách sử dụng sed bạn có thể giảm sự ra phía trên chỉ có một địa chỉ IP:

stunclient stun.services.mozilla.com |    sed -n -e "s/^Mapped address: \(.*\):.*$/\1/p"

Tuy nhiên, câu hỏi là bằng cách nào để tìm ra nó bằng cách sử dụng các dòng lệnh, mà có thể loại trừ bằng cách sử dụng một CHOÁNG khách hàng. Vì vậy, tôi tự hỏi...

Bằng cách sử dụng bash

Một cây cầu có thể được làm thủ công, được gửi đến một bên ngoài CHOÁNG chủ sử dụng netcat và sau xử lý bằng cách sử dụng dd, hexdumpsed như vậy:

$echo -en '\x00\x01\x00\x08\xc0\x0c\xee\x42\x7c\x20\x25\xa3\x3f\x0f\xa1\x7f\xfd\x7f\x00\x00\x00\x03\x00\x04\x00\x00\x00\x00' |    nc -u -w 2 stun.services.mozilla.com 3478 |    dd bs=1 count=4 skip=28 2>/dev/null |    hexdump -e '1/1 "%u."' |    sed 's/\.$/\n/'

Echo xác định một nhị phân CHOÁNG yêu cầu (0x0001 cho thấy ràng Buộc yêu Cầu) có chiều dài 8 (0x0008) với bánh 0xc00cee và một số dán thứ từ hoặc tên. Chỉ có bốn nội đại diện cho các bên ngoài IP được lấy từ những câu trả lời, làm sạch và in.

Làm việc, nhưng không giới thiệu cho sử dụng sản xuất :-)

Tái bút: Nhiều CHOÁNG máy chủ đang sẵn như là nó là một nghệ cốt lõi cho NGỤM và Hủy. Bằng cách sử dụng một từ internet phải được an toàn chính khôn ngoan nhưng bạn cũng có thể sử dụng khác: CHOÁNG danh sách máy chủ

“có IP động”, “SSH sử dụng một số hệ thống khác trên internet”, “câu lệnh mà sẽ hiển hiện tại khu vực IP”. Bạn thấy các gà/trứng vấn đề ở đây? Làm thế nào bạn có thể chạy lệnh trên một máy chủ từ xa mà không biết địa chỉ của nó? Bạn có thể quan tâm nhiều hơn trong dịch vụ như thế no-ip.com / DynDNS.org.

PS ip at DuckDuckGo (không dòng lệnh, nhưng không có anh lớn G không phải)

Có lẽ đây phải là một câu hỏi riêng biệt, nhưng, tôi muốn nhìn thấy một cảnh báo khi tôi địa chỉ IP thay đổi. Bây giờ, tôi chỉ sử dụng sau câu trả lời trong một hủy đăng ký với thông báo cho-gửi.

một người không thể SSH mà không biết công IP của tôi… thông tin thêm chi phí rất nhiều và không-ip khó khăn hoạt động, nhưng tình hình không cho phép điều đó… dù sao thì, câu hỏi chưa được trả lời… cảm ơn ý kiến của bạn

tuyệt vời giải pháp bên dưới. Làm thế nào để sử dụng: ifconfig eth1 | sed -tài nguyên '/^[^ ]+/{N s/^([^ ]+).*inet *([^ ]+).*/\2/p}" nơi eth1 là các thiết bị mạng o quan tâm, bạn có thể bỏ qua 'et1' chuỗi để cho tất cả ip của tất cả bộ điều hợp. Thay vì trong 2 bạn có thể viết \1 \2 để cho tên của mỗi bộ chuyển đổi quá.

Không ai trong số các câu trả lời cho đúng cách tiếp cận. Kể từ khi tôi không có đủ uy tín để viết một câu trả lời tôi sẽ gửi một nhận xét về làm thế nào để có được nó mà không dựa trên dịch vụ bên ngoài. Chỉ cần chạy trên ga $ tên --địa chỉ ip