ฉันต้องการใช้ชื่อผู้ให้บริการอินเทอร์เน็ตในสคริปต์และฉันไม่รู้ว่าฉันจะทำสิ่งนี้ได้อย่างไร
โปรดช่วยฉันขอบคุณล่วงหน้า
ฉันต้องการใช้ชื่อผู้ให้บริการอินเทอร์เน็ตในสคริปต์และฉันไม่รู้ว่าฉันจะทำสิ่งนี้ได้อย่างไร
โปรดช่วยฉันขอบคุณล่วงหน้า
คำตอบ:
คุณสามารถใช้เว็บไซต์จำนวนมากที่จัดไว้เพื่อค้นหาชื่อ ISP ของคุณ หนึ่งในนั้นคือwhoismyisp
และได้รับชื่อ ISP curl
ของคุณในสคริปต์ทุบตีคุณจะได้รับเว็บไซต์นี้ได้โดยสิ่งที่ต้องการ
curl -s https://www.whoismyisp.org | grep -oP -m1 '(?<=isp">).*(?=</p)'
นอกจากนี้คุณสามารถค้นหา ISP ของ IP ที่ต้องการด้วยคำสั่งนี้:
curl -s https://www.whoismyisp.org/ip/xxx.xxx.xxx.xxx | grep -oP -m1 '(?<=isp">).*(?=</p)'
Thats xxx.xxx.xxx.xxx
คือ IP ที่คุณต้องการที่จะหาผู้ให้บริการอินเทอร์เน็ตของ
ข้อมูลเพิ่มเติม : คุณสามารถค้นหา IP ของคุณโดยทุบตีด้วยคำสั่งนี้ (นั่นอาจเป็นประโยชน์สำหรับสคริปต์):
dig +short myip.opendns.com @resolver1.opendns.com
curl ipinfo.io/org
โดยใช้ ไม่มีใครเลยที่ฉันโหวตให้ทั้งคำตอบและคำถามเพราะมันดี :)
curl ipinfo.io/org
ไม่ได้ส่งออกชื่อเต็มของ AS แต่curl -s ipinfo.io/ASxxx | grep as-name
จะ :) :)
คุณสามารถใช้เช่นบริการของipinfo.ioเพื่อตรวจสอบ IP สาธารณะของคุณรวมถึงข้อมูลเพิ่มเติมบางอย่างเช่นชื่อ บริษัท ผู้ให้บริการ
ไซต์สามารถเข้าเยี่ยมชมได้ตามปกติในเบราว์เซอร์ของคุณ แต่ถ้าคุณค้นหาจากบรรทัดคำสั่งด้วยเช่นcurl
พวกเขาตอบสนองในรูปแบบ JSON ที่สะอาดและกำหนดชัดเจนเพื่อให้คุณไม่จำเป็นต้องแยกวิเคราะห์ HTML:
$ curl ipinfo.io
{
"ip": "xxx.xxx.xxx.xxx",
"hostname": "xxxxxxxxxxxxxxxxxxxxxxxxxxx.xx",
"city": "xxxxxxxx",
"region": "xxxxxxxxxx",
"country": "xx",
"loc": "xxx.xxxx,xxx.xxxx",
"org": "xxxxxxxxxxxx",
"postal": "xxxxx"
}
หากต้องการแสดงเพียงค่าเดียวคุณสามารถส่งคำขอไปยังเส้นทางที่เกี่ยวข้องได้โดยตรง เช่นชื่อ ISP ( org
) ลองทำสิ่งนี้:
curl ipinfo.io/org
แรงบันดาลใจจากคำตอบนี้
ก่อนอื่นฉันดึงหมายเลขระบบปกครองตนเอง:
$ curl -s ipinfo.io/org
AS2094 Renater
จากนั้นฉันก็ดึงชื่อเต็มของ AS:
$ curl -s ipinfo.io/$(curl -s ipinfo.io/org | cut -d "" -f1) | awk '/ as-name / {พิมพ์ $ NF}'
$ whois $(curl -s ipinfo.io/org | cut -d" " -f1) | awk -F: 'BEGIN{IGNORECASE=1}/(as-?name|org-?name):/{sub("^ *","",$2);print$2}'
FR-TELECOM-MANAGEMENT-SUDPARIS
Renater
AS852 TELUS Communications Inc.
มา ตัวเลือกของคุณที่ 2 ด้านบนไม่มีอะไรส่งคืน คำตอบที่ยอมรับนั้นใช้curl -s https://www.whoismyisp.org | grep -oP '\bisp">\K[^<]+'
และส่งคืนTelus Communications
ซึ่งเป็นคำตอบที่ จำกัด ของ Byte แต่ก็ยังดี นี่เป็นหนึ่งในคำตอบของYMMV (Your Mileage May Vary)
ipinfo.org
มีในการเก็บรวบรวมข้อมูลของพวกเขา สำหรับฉันcurl -s ipinfo.io/org
ให้AS3320 Deutsche Telekom AG
ในขณะที่curl -s ipinfo.io/AS3320 | grep as-name
ให้DTAG
(หลังจากที่ในขณะ) นอกจากนี้หลังจะแยกวิเคราะห์เอาต์พุต HTML อีกครั้ง (เกิดข้อผิดพลาดได้ง่าย!) ดังนั้นฉันจะยึดติดกับคำตอบของ ByteCommander
AS3320
ฉันได้รับDTAG
ผลลัพธ์เดียวกันกับที่คุณได้รับ แต่ฉันสงสัยว่าถ้าคุณใช้ของแคนาดาcurl -s ipinfo.io/AS852 | grep as-name
คุณจะได้รับผลเช่นเดียวกับฉัน
curl -s ipinfo.io/org
ส่งคืนข้อมูลตาม IP ที่ร้องขอในขณะที่curl -s ipinfo.io/AS3320
ส่งคืนข้อมูลตามพารามิเตอร์ที่กำหนด (ไม่สนใจ IP ของคำขอ) อย่างไรก็ตาม. การแยก HTML โดยไม่มีตัวแยกวิเคราะห์ที่เหมาะสมเป็นความคิดที่ดี คุณรู้คำตอบที่โด่งดังเกี่ยวกับStack Overflowหรือไม่? มันสนุกที่จะอ่าน