IP cím küldése e-mailben hogyan?

 ( WG | 2017. március 12., vasárnap - 13:00 )

Sziasztok!

Van egy dinamikusan változó IP címen működő RPi.
Amikor bekapcsolják, elindul egy script, amiből szeretném elküldeni az épp aktuális "publikus" IP címet magamnak, hogy ssh-n hozzáférjek.
A gmail és a szolgáltatóm sem partner ebben.
Tudtok olyan smtp szervert mondani, amellyel el tudok küldeni egy e-mailt raspbian alól?
Más módszer is érdekelne, hogy megtudjam az IP-t.

Köszi

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Dynamic DNS nem játszik? És akkor csak nevet kell megjegyezned, nem IP-t és nincs szükség a levelezésre sem.

Sajnos nem. IP cím kell.

A gép bejegyzi magát dinamikus DNS-be, ahonnan DNS kéréssel meg fogod tudni az aktuális IP-címet.

+1 ... nem tudom hova kell ip cim, ahol FQDN nem használható, de a DNSből megkapható

Egyébként mit értez az alatt, hogy gmail nem működik?
Gmail-t beállíthatod SMTP szervernek, annyi a titok, hogy saját felhasználóddal be kell lépni.
Pl https://easyengine.io/tutorials/linux/ubuntu-postfix-gmail-smtp/

+1

Nálam egy 15 percenként lefutó script wget-tel lekéri a címet a checkip.dyndns.com-ról majd curl-lel felmásolja egy szerverre. Innen mindig megnézhetem az aktuális címet.

--
Soli Deo Gloria

+1

Egy egyszerű php program, megfelelő auth után, lerakja egy html vagy txt fájlba az IP cimet, nem kell óránként kapnod a levelet, hanem megnézed kapcsolódás előtt az IP cimet, de ssh script-et is irhatsz ami leszedi a szerverről az IP-t és oda kapcsolódik. Email auth elég körülményes, és felesleges is ide, de persze a php biztonságára is figyelj, a bejövő adatot validáld, hogy csak IP cim lehessen, legyen valami egyszerű authentikáció, legyen a szerveren a txt nem futtatható még véletlenül se :), stb. Erre mindjárt lesz itt pár tipp alattam.

Egy lépést kihagyhatsz, ha rögtön a szerveredről kérsz le wget-tel egy ezért felrakott php-t, amely PHP kódodban a $_SERVER["REMOTE_ADDRESS"] értékét kiírod fájlba.
Ha IPv6 címet akarod elrakni, akkor wget -6 ...

Ez nem igazi szerver, inkább csak webtárhely, amit a telekom az előfizetéshez ad. Itt nem tudok PHP-t futtatni.

--
Soli Deo Gloria

Az IP címet (mint tartalmat) scp-vel feltolod egy (ismert című) weboldal adott könyvtárába egy adott file-ba. Bárhonnan wget-tel leszeded a file-t, és feldolgozod.
Meglévő auth SMTP accounttal elküldöd a levelet, mondjuk mailx-szel.
Regisztrálsz egy dinamikus DNS címeket kezelő szolgáltatásra, és használod.
Curl-lel ráhívsz egy (ismert című) weboldalon elhelyezett scriptre, ami a hívott paraméterében lévő IP címet feldolgozza/elrakja/amit akarsz vele.
Stb, stb, stb.

Nincs ismert című weboldalam.
A mail küldés megy, de nem csak az IP változhat, hanem akár a geolokáció is. A Gmail pl. folyton ugat, ha máshová viszik a gépet.
Dinamikus DNS sem jó, mert ha pl. lemásolják a raspbian-t tartalmazó kártyát és egy másik RPi-ba teszik, akkor 2 (vagy több) gép akarja ugyan azt a DynDNS-t használni, akár egy időben is.
Nincs ismert című weboldalam.
Stb, stb, stb érdekelne.

"Dinamikus DNS sem jó, mert ha pl. lemásolják a raspbian-t tartalmazó kártyát és egy másik RPi-ba teszik, akkor 2 (vagy több) gép akarja ugyan azt a DynDNS-t használni, akár egy időben is."
Erről eddig nem volt szó.

Írd le a feltételeket, és akkor tudunk ajánlani megoldásokat. Addig, amíg nem ismerjük az összes lehetséges esetet, amire fel akarsz készülni, csak sötétben tapogatózunk.

Egy biztos: mindenféleképpen kell lennie olyan eszköznek, amihez az RPI(k) csatlakoznak, és az eszköz(ök) számára ismert DNS neve vagy IP-címe van. Lehet ez az eszköz a Google SMPT szervere, a szolgáltató SMTP szervere, a DynDNS szervere, lehet egy ismert című weboldal, lehet egy ismert publikus IRC szerver, bármi. Gyakorlatilag ez fogja neked az információt proxyzni: te is tudod ezt az ismert címet, és az eszközök is tudják ezt a címet. Az, hogy ezen a címen milyen szolgáltatás van (SMTP, IRC, HTTP, FTP, XMPP, DNS, whatever), az megszabja a kommunikációs protokollt, amin az IP címeket el tudják küldeni a kliensek. Ezt fontos megérteni, mindenképpen kell lennie ilyennek. A botnetek is így működnek: mindegyik számára elérhető a C&C szerver címe, ahova csatlakozhat és várhatja a parancsokat.

Amúgy: hogyan oldod meg azt a problémát e-mail esetén, hogy lemásolják az RPI kártyáját, és két eszköz is küld neked IP címet? Honnan tudod, hogy ez két külön eszköz 1-1 próbálkozása volt, vagy 1 eszköz 2 próbálkozása?

Az utolsó bekezdésre reagálok, a többiből csak az e-mail jó nekem.

Amikor a telefonom jelez, hogy egy adott IP-n elindult a program, akkor azon a routeren előre kinyitott megadott porton csatlakozom ssh-n az RPi-hoz.
A RPi egyedi azonosítói és a RPi-ra kötött szenzorok egyedi azonosítói alapján látom, hogy az eredetivel, vagy egy másolattal van-e dolgom.
Mivel az ember, akinek "eladtam" nem egy informatikai zseni, már a port nyitásáig sem jut el a másolattal, így nem lesz nyitva a port másolat esetén.
Az eszközt attól még tudja használni más szenzorokkal, csak a megfelelő config fájlokban kell átírnia az új szenzoroknak megfelelő eszközazonosítókat.
Szerintem ebből érthető, de kérdezz, ha nem.

"A RPi egyedi azonosítói és a RPi-ra kötött szenzorok egyedi azonosítói alapján látom, hogy az eredetivel, vagy egy másolattal van-e dolgom."
Mivel van egyedi eszközazonosító, a DynDNS számára is lehet egyedi azonosítóval bejelentkezni, azt az azonosítót a DNS rekord(ok)ba elmenteni stb.

Kérdés, akkor ez nagyjából fix helyeken (azaz behatárolható , hogy 8 darab telephely között "viszik") mozgó eszköz ? Hiszen az adott helyen PORT nyitására van szükség (adott esetben forwardra) ahhoz, hogy elérd az rpi-t.

Ez nem teljesen világos, hogy hogyan is valósul meg.

Bár ez csak egy mellékszál :)

Idézet:
Nincs ismert című weboldalam.

Legyünk egy kicsit találékonyak! Ha havi néhány száz forintért nem akarsz VPS-t, akkor is van lehetőség.
Ami hirtelen eszembe jut, verziókezelés: github/bitbucket/stb. Az RPI-d mindig egy verziókezelt fájlba nyomja az IP-címet, és automatikusan küldi a változásokat, amit te meghatározott időközönként leszedsz.

Az hagyján. Ha van Google Accountja, Google Drive-ja is van. Aminek API-ja is van. Vagy éppen Google Sites. Stb.

Régebben próbálkoztam a GDrive-val parancssorból, eléggé mérsékelt sikerrel. Azóta lehet, hogy javult.

Küldj egy emailt vs. bérelj VPS-t, fizess havi néhányszáz ft-ot érte, figyelj egy fájlt, történt-e benne változás...
Ezt én nem találékonyságnak nevezném.

Ja, ha számodra az e-mail küldés a találékonyság 1 db IP cím leközlésére, akkor ne is várj segítséget.

Rengetegféleképpen meg lehet oldani ezt a kommunikációt, de te nem igazán írtad körül a környezetet és feltételeket, amire megoldást vársz, így aztán ne is várd el, hogy minden javasolt megoldás tetszeni fog.

Egy havi 400 forintos VPS amúgy tökéletes megoldás, ha nem SaaS-tól akarsz függni és ki szeretnéd alakítani a saját kis szoftverkörnyezetedet.
De hát nem tudjuk, mit akarsz.

Így meg azt hiszem, nem igazán korrekt a fenti kritikád az ötleteinkkel kapcsolatban.

Idézet:
Ha havi néhány száz forintért nem akarsz VPS-t, akkor is van lehetőség.

Ha sikerült megértened ennek az első mondatnak az értelmét, és fogod a fejed, hogy érthetted ennyire félre, hogy VPS-t akarok béreltetni (figyelj az aláhúzott szóra), akkor lépj a következő bekezdésre és olvasd tovább. Ott van egy lehetőség leírva, amire utaltam ("akkor is van lehetőség").

Erre írtam ezt: "figyelj egy fájlt, történt-e benne változás..."

Akkor figyelj egy emailt, hogy megjött-e...
Nem ugyanaz?

Mivel még mindig nem tudjuk pontosan, hogy mit akarsz (hogyan akarod megtudni az IP-címeket például, miért pont e-mail jutott eszedbe először), ezért nem tudom, mi a gond azzal, hogy egy kliens egy file-ban rögzítené (verziózottan, azaz még története is van) ezt az információt.

Én ilyet nem mondtam. Ezt te írtad.

De hogy lásd, nem a levegőbe beszélek:

  1. Csinálsz egy szkriptet (getip.sh), ami meghatározza az IP-címet, és ezt egy fájlba (/var/log/ip/ip.txt) írja.
  2. Teszem azt, git-et telepítesz.
  3. Lefut a getip.sh. Ezután egy szkript, ha kell (git status -s parancs kimenetéből indulnék ki), git commit ip.txt -m 'valtozott' && git push parancsot végrehajt.
  4. Kívülről egy git pull paranccsal letöltheted (vagy akár https://raw.githubusercontent.com/WG_username/WG_ip-projekt/master/ip.txt-t wget-tel - ha github-ra töltöd fel).

Remélem, sikerült megértened.

Szerkesztés: egyébként a te megoldásod miért is jobb (azt leszámítva, hogy kész van)?

Minden órában küld az RPI egy email-t, amit megkapsz, amit letöltesz a szerverről, megnézed a megkapott email tartalmát, hogy milyen IP-címet tartalmaz, és ezt feldolgozod.

vs.

Minden órában egy verziókezelő feltölti az esetleges változásokat, amelyet te letöltesz. Ha nincs változás, akkor a letöltött ip.txt sem változott, így semmi feldolgozás nem kell.

Első blikkre a te megoldásod bonyolultabbnak és program-igényesebbnek tűnik.

https://www.smtp2go.com/

Soha nem használtam, de azt írják van free plan 1000 email/hó. :D

https://ubuntuforums.org/showthread.php?t=1011105

vagy ifttt maker channel. Cron script ellenőrzi a címet, hívsz ifttt API-t vele, ott meg oda küldöd ahova akarod minden további szívás nélkül

[Feliratkozás]

„A gmail és a szolgáltatóm sem partner ebben.”

Ezen mit értesz? A gmail nem küld el olyan levelet amiben IP cím van?

400 Ft-ért/hó van vps, azon egy openvpn nem játszik?

üdv: pomm

A 852-es kídlap telepötúsa sikeresen befejezádétt

+1
nalam vps-en van openvpn server, itthoni gep pedig clientkent csatlakozik, igy nem kell portokat nyitogatni, forwardolni, es dnssel foglalkozni, barmikor "hazajohetek".

Ha már Gmail és mailküldés: így is lehet: https://developers.google.com/apps-script/reference/mail/mail-app

dropbox?
fileba leteszed az IPt, és a kliens pedig felszinkronizal.

Esetleg Hopmsg.com

Ez jó lehet. Az Android APP-ot kell még meglesnem, hogy tud-e értesítést küldeni.
Köszi

Hasznos, köszi!

--
Soli Deo Gloria

új 

úristen, ez a thread... (tömören fogalmaztam)