Si të merrni IP-në tuaj publike në një skript Linux Bash
Përmbledhje: Ju mund të merrni IP-në tuaj të jashtme nga një faqe interneti me komandën curl si curl -s ifconfig.me. Megjithatë, faqet e internetit mund të ndryshojnë. Për një përgjigje më të besueshme, përdorni komandën dig si dig @resolver1.opendns.com myip.opendns.com +short për të marrë IP-në tuaj nga një server DNS.
Do t'ju duhet adresa juaj e jashtme IP nëse dëshironi të lidheni në distancë me kompjuterin tuaj. Gjetja e tij me dorë është e lehtë, por ja se si ta gjeni atë nga brenda një skripti Linux.
Adresat IP të brendshme dhe të jashtme
Adresat e Protokollit të Internetit përdoren për të identifikuar pajisjet në një rrjet. Ata janë një etiketë unike në rrjet, e caktuar për një pajisje të vetme. Nëse një pajisje tjetër dëshiron të dërgojë të dhëna në atë pajisje, mund ta bëjë këtë duke përdorur adresën e saj IP.
Modemi juaj me brez të gjerë ka një ruter rrjeti të integruar që drejton trafikun e rrjetit rreth rrjetit nga pajisja në pajisje. Është gjithashtu autoriteti lokal që shpërndan adresat IP për pajisjet kur ato bashkohen në rrjet. Ai gjithashtu mban një tabelë të emrave të rrjeteve dhe adresave IP. Kjo ju lejon t'u jepni emra kuptimplotë kompjuterëve në rrjetin tuaj, sepse - për njerëzit - emrat janë më të lehtë për t'u punuar sesa listat e numrave.
Pajisjet në internet kanë gjithashtu një adresë IP. Disa prej tyre kanë edhe emra, si p.sh. faqet e internetit. Ofruesit e shërbimit të emrave të domenit kërkojnë emrat e domeneve të faqeve të internetit dhe i shkëmbejnë ato për adresat IP, automatikisht.
Modemit tuaj me brez të gjerë i jepet adresa IP e tij e orientuar nga interneti ose të jashtme nga Ofruesi juaj i Shërbimit të Internetit (ISP). Pavarësisht nga numri i pajisjeve që mund të keni në shtëpinë tuaj që janë të lidhura me internetin, trafiku i tyre i kombinuar i gjithë kalon përmes asaj adrese të vetme IP.
Nëse jeni jashtë qytetit dhe dëshironi të lidheni me një shërbim që keni përdorur në një nga kompjuterët në shtëpinë tuaj, do t'ju duhet të përdorni adresën tuaj të jashtme IP për ta bërë këtë. Ruteri juaj do të duhet të konfigurohet për të drejtuar kërkesën tuaj të lidhjes në pajisjen e duhur brenda shtëpisë tuaj, natyrisht.
Nëse nuk paguani pak më shumë te ISP-ja juaj çdo muaj për një adresë IP statike adresa juaj IP e jashtme mund të ndryshojë herë pas here. Rinisja e modemit tuaj me brez të gjerë mund të rezultojë në marrjen e një adrese IP të jashtme të ndryshme. Pra, nëse keni nevojë të dini adresën tuaj të jashtme IP, nuk mund ta kontrolloni vetëm një herë dhe ta ruani. Ju do të duhet të përcaktoni periodikisht se çfarë është.
Gjetja e adresës suaj të jashtme IP
Të zbulosh adresën tënde IP të jashtme do të thotë të flasësh me diçka që është jashtë rrjetit tënd. Me fjalë të tjera, aksesi në diçka në internet që mund të na japë informacionin që duam. Ne duhet të shikojmë në zbrazëti dhe të shohim se çfarë po shikon prapa tek ne. Dhe pastaj kërkoni atë për adresën tonë të jashtme.
Ka dy mënyra se si mund ta bëjmë këtë. Një mënyrë përfshin faqet e internetit. Ka shumë faqe interneti që do t'ju tregojnë se cila është adresa juaj e jashtme IP, dhe një mori informacionesh të tjera gjithashtu. Ju mund t'i qaseni këtyre në shfletuesin tuaj ose përdorni një mjet të linjës komanduese si curl
që mund të bëjë kërkesa HTTPS.
Mënyra tjetër është të përdorni një komandë të dedikuar si dig
. Komanda dig
merr në pyetje serverët DNS për të marrë informacion.
Duke përdorur një shfletues
Sigurisht, përdorimi i një shfletuesi nuk është një mënyrë miqësore me skriptin për të marrë adresën tuaj të jashtme IP. Por shikimi në një faqe interneti që ofron atë shërbim mund të na japë informacion të dobishëm. Dikur rekomandonim ip4.me, por faqja nuk është përditësuar në HTTPS. Ai ende përdor HTTP-në më të vjetër dhe të pasigurt. Faqja ende funksionon, por tani ka alternativa më të mira.
Faqja e ifconfig.me ofron një grup të mirë informacioni.
Kjo po raporton IP-në tonë të jashtme si 178.238.11.140. Duke lëvizur poshtë në faqen e internetit, do të gjeni një listë komandash që mund t'i përdorni për të marrë informacion nga faqja.
Shembujt që ata japin përdorin të gjithë curl
për të marrë në pyetje faqen. Pra, le të hedhim një vështrim në përdorimin e curl
.
Duke përdorur curl
Në makineritë tona të testimit, Fedora 37 kishte tashmë të instaluar curl
. Na duhej ta instalonim në kompjuterët tanë Ubuntu dhe Manjaro.
Për ta instaluar atë në Ubuntu, shkruani:
sudo apt install curl
Komanda në Manjaro është:
sudo pacman -S curl
Ne mund ta provojmë këtë me komandën e parë të listuar në faqen e internetit ifconfig.me
.
curl ifconfig.me
Adresa jonë e jashtme IP merret dhe shfaqet në dritaren e terminalit. Prodhimi është i zhveshur. Nuk ka as një karakter të linjës së re të shtypur pas vargut. Prompti i komandës është vendosur drejtpërsëdrejti me adresën IP.
Kjo komandë funksionon sepse kthimi i adresës IP është veprimi i paracaktuar i faqes në internet. Nëse veprimi i paracaktuar ndonjëherë ndryshon, mund të na kthehet një rezultat tjetër. Për t'u kujdesur për këtë, ne mund të specifikojmë se po kërkojmë adresën tonë IP duke shtuar identifikuesin ip në URL.
curl ifconfig.me/ip
Kjo kthen adresën IP si më parë.
Kjo ilustron problemin me përdorimin e një faqe interneti si burim i adresës suaj IP. Faqet e internetit mund të mbyllen ose mund të ndryshojnë mënyrën e funksionimit të tyre, ose formatin e informacionit të kthyer. Këto ndryshime do të bëjnë që skriptet që varen nga këto sajte ose të dështojnë ose të sillen në mënyrë të paparashikueshme.
Përdorimi i një burimi me reputacion dhe të besueshëm si një server DNS është një mënyrë më e fuqishme për të marrë IP-në tuaj të jashtme. Për të kërkuar një server DNS, duhet të përdorim komandën dig.
Duke përdorur komandën dig
Këtë herë, dig
u instalua në Fedora dhe Ubuntu, dhe na mbeti ta instalonim vetëm në Manjaro.
Komanda është komanda e zakonshme pacman
, kështu që nuk ka surpriza, por emri i paketës nuk është ai që mund të prisni.
sudo pacman -S bind-tools
Për të përdorur dig
për të zbuluar adresën tonë të jashtme IP, duhet ta drejtojmë atë te një server DNS. Ne po përdorim serverin OpenDNS, i cili ofrohet nga Cisco.
Duhet të specifikojmë emrin e serverit DNS që duam të përdorim, të paraprirë nga një shenjë në @. Ne gjithashtu duhet të emërtojmë llojin e rekordit që dëshirojmë të marrim. Në këtë rast është myip. Opsioni +short
siguron që ne të marrim një përgjigje të shkurtër, dhe jo një përgjigje të hollësishme.
dig @resolver1.opendns.com myip.opendns.com +short
Këtë herë, adresa jonë IP ka një karakter të linjës së re të printuar pas saj. Siç do ta shohim, kjo shtypet pas vargut të adresës IP, nuk është një pjesë integrale e vetë vargut.
Përdorimi i këtyre në një skenar
Ka shumë arsye pse mund të dëshironi të dini adresën tuaj të jashtme IP nga brenda një skripti. Ndoshta ju keni një skript që monitoron nëse adresa juaj e jashtme IP ka ndryshuar dhe ju njofton kur kjo të ndodhë. Ose ndoshta një server i njofton klientët e tij kur adresa e tij ndryshon. Cilado qoftë arsyeja juaj, ne mund t'i zbatojmë komandat që kemi përdorur në vijën e komandës brenda një skripti mjaft lehtë.
Për të rikuperuar adresën tonë të jashtme IP dhe për t'ia caktuar një ndryshore, duhet vetëm ta mbështjellim komandën brenda një zëvendësimi të komandës, $ (...)
dhe t'ia caktojmë një ndryshoreje, si kjo :
variable=$(...)
Komanda brenda kllapave ekzekutohet dhe vlera e kthyer zëvendësohet për shprehjen. Në këtë shembull, komanda është thjeshtuar në variable=vlera e kthimit.
Këtu është në një skenar. Ne kemi shtuar opsionin -s
(i heshtur) në komandën curl
për ta parandaluar atë të raportojë ecurinë e rikthimit të të dhënave.
#!/bin/bash
extaddr=$(curl -s ifconfig.me)
echo "The external IP address is $extaddr (from cURL)"
Kopjojeni këtë skript në një redaktues dhe ruajeni si getex1.sh dhe bëjeni të ekzekutueshëm me komandën chmod
.
chmod +x getex1.sh
Le të ekzekutojmë skenarin dhe të shohim se çfarë marrim.
./getex1.sh
Për të bërë të njëjtën gjë me opsionin më të fuqishëm të përdorimit të një serveri DNS në vend të një faqe interneti, gjithçka që duhet të bëjmë është të zëvendësojmë komandën curl
me atë dig
.
#!/bin/bash
extaddr=$(dig @resolver1.opendns.com myip.opendns.com +short)
echo "The external IP address is $extaddr (from dig)"
Ruajeni këtë si skript getex2.sh dhe bëjeni të ekzekutueshëm me chmod
.
chmod +x getex2.sh
Le të ekzekutojmë këtë skenar.
./getex2.sh
Ne mund të shohim nga dalja e dy skripteve se pavarësisht nga komanda dig
që shtyp një karakter të linjës së re në vijën e komandës, në skript nuk ka asnjë rresht të ri të shtuar në ndryshoren extaddr
.
Shkoni për besueshmëri
Është gjithmonë më e sigurt të përdorësh një shërbim të njohur që është me reputacion dhe ka një format të parashikueshëm të daljes sesa të përdorësh një faqe interneti jozyrtare. Si çdo gjë tjetër në internet, shikoni mirë se nga kush po merrni informacionin tuaj.'