ฉันรู้ว่าฉันสามารถทำcurl curlmyip.com
หรืออะไรแบบนั้นได้ แต่นั่นแสดงให้ฉันเห็นว่า ip curlmyip.com กำลังดูอยู่
มีเครื่องมือใดที่ฉันสามารถใช้ที่บอกฉันว่า IP ของฉันบนปลายทางสำหรับจุดเชื่อมต่อ TCP ใด ๆ (ไม่ใช่แค่ curlmyip.com)?
ฉันรู้ว่าฉันสามารถทำcurl curlmyip.com
หรืออะไรแบบนั้นได้ แต่นั่นแสดงให้ฉันเห็นว่า ip curlmyip.com กำลังดูอยู่
มีเครื่องมือใดที่ฉันสามารถใช้ที่บอกฉันว่า IP ของฉันบนปลายทางสำหรับจุดเชื่อมต่อ TCP ใด ๆ (ไม่ใช่แค่ curlmyip.com)?
คำตอบ:
โพรโทคอลอินเทอร์เน็ตไม่มีวิธีสืบทอดการเปิดเผยที่อยู่ของฝ่ายใดฝ่ายหนึ่ง
หากคุณมีการควบคุมจุดสิ้นสุดเหล่านั้นคุณสามารถตั้งค่าเช่นบริการหรือเพียงแค่จับ ICMP echo (ping) บนปลายทางระยะไกลเพื่อดู IP ที่นำเสนอด้วย
วิธีแก้ปัญหาอื่นก็คือการใช้ netcat เพื่อเปิดเซิร์ฟเวอร์ที่เรียบง่ายและเชื่อมต่อกับมันเมื่อทำงานด้วยสวิตช์ verbose มันจะแสดงข้อมูลเกี่ยวกับเพียร์ที่เชื่อมต่อ
server:~# nc -lvp 1234
Listening on [0.0.0.0] (family 0, port 1234)
Connection from [127.0.0.1] port 1234 [tcp/*] accepted (family 2, sport 42852)
คุณสามารถใช้curl --interface
เพื่อกำหนดอินเทอร์เฟซที่ควรใช้สำหรับการร้องขอ จากนั้นขอcurlmyip.com
หรือบริการที่คล้ายกันตามปกติ
นี่จะไม่เป็นไปได้ในกรณีทั่วไป
โดยทั่วไป NAT หลายเลเยอร์หมายถึงว่ามีเราเตอร์หลายตัวที่ใช้ NAT อย่างโปร่งใส ประเด็นของ NAT คือมันแทนที่ที่อยู่และจะทิ้งข้อมูลใด ๆ ที่ด้านนอกมองว่าเป็นที่อยู่ของคุณ
วิธีเดียวที่จะบรรลุเป้าหมายนี้คือ
ดังนั้นจึงอาจมีวิธีแก้ปัญหาเมื่อคุณสามารถควบคุมอุปกรณ์ปลายทางได้ไกล
ไม่แน่ใจว่าฉันเข้าใจคำถามของคุณถูกต้อง แต่มีวิธีแก้ไขปัญหาอื่น ๆ :
dig +short myip.opendns.com @resolver1.opendns.com
DNS เร็วขึ้นและจางลงแทนที่จะใช้ http หากการขุดไม่พร้อมใช้งานให้ลองใช้เครื่องมือสำหรับเคียวรี dns ของคุณและดูคำตอบนี้บนเซิร์ฟเวอร์