สมมติว่าระบบของคุณมีอุปกรณ์อีเธอร์เน็ตที่ 2 eth0
และeth1
และeth0
จะเชื่อมต่อกับระบบ LAN ของคุณบอกว่า IP ที่ 192.168.1.X ของคุณและeth1
อุปกรณ์ที่มีการเชื่อมต่อกับ ISP (WAN) คุณจะต้องการที่จะใช้ต่อไปนี้ifconfig
คำสั่งที่จะได้รับ IP ของคุณสำหรับ ด้าน WAN
หมายเหตุ:วิธีที่ 2 วิธีที่ 1 สมมติว่าคุณใช้กับคอมพิวเตอร์ที่มีอุปกรณ์อีเธอร์เน็ต 2 เครื่องและหนึ่งในนั้นเชื่อมต่อกับ ISP ของคุณ (เคเบิลโมเด็มและ / หรือโมเด็ม DSL) ในสถานการณ์นี้อุปกรณ์อีเธอร์เน็ต (eth1) จะถูกกำหนดค่าด้วยที่อยู่ IP ของคุณบนอินเทอร์เน็ต (WAN IP)
วิธีที่ 1
+------------------------+
+--------+ WAN IP | Computer that wants | LAN IP
|Internet|--------------| to know WAN IP |------------
+--------+ 54.234.1.33 | +------+ +------+ | 192.168.1.1
+-| eth1 |------| eth0 |-+
+------+ +------+
% ifconfig eth1 | awk '/inet / { print $2 }' | sed -e s/addr://
54.234.1.33
คุณยังสามารถใช้ip
คำสั่ง
% ip addr show eth1 | awk '/inet/ {print $2}' | sed 's#/.*##'
54.234.1.33
วิธีที่ 2
หากคุณต้องการค้นหาสิ่งนี้จากระบบที่อยู่บน LAN เท่านั้นคุณสามารถตั้งค่าคีย์รหัสผ่าน ssh ที่ไม่มีข้อความรหัสผ่านและเพิ่มลงในบัญชีบนเครื่อง LAN ของคุณเพื่อให้สามารถเข้าถึงระบบจากระยะไกลด้วยการเข้าถึงแบบ WAN ได้
+----------------+
+--------+ WAN IP +-------------+ LAN IP | Computer that |
|Internet|----------------|remote-server|-----------------| wants to know |
+--------+ 54.234.1.33 +----+-----+----+ 192.168.1.x +----+ WAN IP |
|eth1| |eth0| |eth0|------------+
+----+ +----+ +----+
% ssh ruser1@remote-server "ifconfig eth1 | awk '/inet / { print \$2 }' | sed -e s/addr://"
54.234.1.33
วิธีที่ 3
หากคุณไม่สามารถ ssh ลงในกล่องที่มีการเข้าถึง WAN และคุณกำลังใช้เราเตอร์ภายในบ้าน / สวิตช์เช่นกล่อง Linksys หรือ Netgear คุณอาจได้รับ IP จากอุปกรณ์นั้นผ่านหน้าสถานะ HTTP ฉันเคยทำสิ่งนี้มาแล้วในอดีตสิ่งที่คล้ายกับที่อธิบายไว้ในโพสต์ฟอรัม whatismyip.comนี้
192.168.1.2
+----------------+
+--------+ WAN IP +-------------+ LAN IP | Computer that |
|Internet|----------------|router/switch|-----------------| wants to know |
+--------+ 54.234.1.33 +-------------+ 192.168.1.x +----+ WAN IP |
192.168.1.1 |eth0|------------+
+----+
# something like this....
% wget -q -O - http://<username>:<password>@192.168.1.1/Status_Router.asp | grep "ipaddress" | cut -d" " -f2
หมายเหตุ:วิธีการนี้ขึ้นอยู่กับว่าคุณมีเราเตอร์ / สวิตช์ใดบ้างไม่ว่าจะเป็น Linksys, Netgear ฯลฯ แต่ละคนจะมีหน้าพิเศษของตัวเองพร้อมกับ IP ของ WAN
วิธีที่ 4
การส่งเคียวรีกับไซต์อินเทอร์เน็ตภายนอกซึ่งจะรายงานที่อยู่ IP WAN ของคุณกลับมา
หมายเหตุ:ฉันทราบว่าคำถามเดิมกล่าวว่าพวกเขากำลังมองหาทางเลือกสำหรับวิธีการนี้ แต่ฉันวางไว้ที่นี่เพื่อที่คำตอบนี้จะครอบคลุมทุกฐาน
+---------------+
+-------------+ +--------+ +------+ LAN IP | Computer that |
|whatsmyip.com|---|Internet|---|router|---------------| wants to know |
+-------------+ +--------+ +------+ 192.168.1.x +----+ WAN IP |
you're 54.234.1.33 |eth0|-----------+
+----+
# 1st server
% wget -qO - ipv4bot.whatismyipaddress.com
54.234.1.33
# 2nd server
% curl 'https://api.ipify.org?format=json'
{"ip":"54.234.1.33"}
% curl 'https://api.ipify.org?format=txt'
54.234.1.33
# 3rd server
% curl -s checkip.dyndns.org | sed 's#.*Address: \(.*\)</b.*#\1#'
54.234.1.33
มีข้อมูลเพิ่มเติมที่นี่: HOWTO: ตรวจสอบที่อยู่ IP ภายนอกของคุณจากบรรทัดคำสั่ง