Autor |
Sõnum |
mihkel
Vana Pingviin
Liitunud: 16.04.2006
Postitused: 1284
Distributsioon: Fedora/Centos
|
|
Aeg-ajalt, kui tahtmist tuleb, siis saadan arvutist VLC kaudu striimi Amino digiboxi (elioni digitv) ja vaatan oma filme teleka kaudu. Selleks on vaja digiboxi kaabel tõsta oma standardsest pordist mõnda teise porti, näiteks teise või muuta 4 pordi grupp iptv pealt default peale ruuteris, mida ma olegi praktiseerinud.
Vaikimisi on nii:
Kood: |
{Administrator}=>eth bridge vlan iflist
Vid Name Bridge interfaces (* = untagged)
--- ---- --------------------------------
1 default OBC*, ethport1*, ethport2*, ethport3*, usbport*, WLAN*
100 iptv OBC, ethport4*, mcast*
|
Ümbertõstetult näeb asi välja nii
Kood: |
{Administrator}=>eth bridge vlan iflist
Vid Name Bridge interfaces (* = untagged)
--- ---- --------------------------------
1 default OBC*, ethport1*, ethport2*, ethport3*, ethport4*, usbport*, WLAN*
100 iptv OBC, mcast*
|
Käsk selleks on järgmine:
Kood: |
eth bridge group move intf ethport4 name default
|
Ausalt öeldes muutub see ruuteris toimetamine vaikselt tüütuks. Seega minu küsimus on: Kas oleks võimalik ruuteris läbi viia selline muudatus, mille tagajärjel ma ei peaks sedasi igakord toimetama, kui tahan oma filme digiboxi striimida?
Kui jah, siis kuidas?
|
|
|
|
|
|
|
|
obundra
Vana Pingviin
Vanus: 50
Liitunud: 04.08.2005
Postitused: 1213
Asukoht: 127.0.0.1
Distributsioon: RHEL, Solaris, Debian, Gentoo
|
|
Ideepoolest võiks selle ju skripti valada, mis kontrolliks lingi olemasolu pordis ja vastavalt sellele reageeriks.Kahjuks ma pole ühegi Aminoga kokku puutunud ja ei tea täpsemalt mis tal kõhus toimub.
|
|
|
|
_________________ IT teenused
|
|
|
|
imre
Vana Pingviin
Liitunud: 16.08.2005
Postitused: 2648
Asukoht: Saku kant
Distributsioon: Ubuntu
|
|
Näiteks Perli skript võiks abiks olla
Kood: | #!/usr/bin/perl -w
use Net::Telnet ();
$host = '10.0.0.138';
$user = 'Administrator';
$pass = '';
$t = new Net::Telnet ( Timeout => 10,Prompt => '/.*=>$/i');
$t->open($host);
$t->login($user, $pass);
@result = $t->cmd(':OMALE SOBILIK KÄSK SIIA');
print @result;
$t->close(); |
See logiks siis Ruuterisse sisse.
Mina kasutasin seda toonigraafiku joonistamisel. Noh, et kas on kuskil "augud" sees vms.
Konkreetse pildi joonestamiseks on skript muidugi hulga pikem.
Aga alustuseks annab see sulle ehk väikse ise kuidas edasi liikuda.
|
|
|
|
_________________ Enne teema püstitamist kasutage OTSINGUT
Küsi targalt: Infot siit!
Kui aru ei saa, siis küsi.
|
|
|
|
mihkel
Vana Pingviin
Liitunud: 16.04.2006
Postitused: 1284
Distributsioon: Fedora/Centos
|
|
Ma pidasin silmas ikka seda, et ruuterisse saaks jäädava muudatuse teha, mitte seniseid samme skriptina esitada. Praegu on ju nii, et kui ethport4 asub default grupis, siis näen ainult enda masinast saadetud striimi. Selleks, et näeks jälle elioni striimi, tuleb ethport4 tõsta tagasi iptv gruppi.
Peale kosutavat und ja oma algset postitust üle lugedes, jääb karvane tunne, et selline asi polegi võimalik? Parandage, kui eksin.
|
|
|
|
|
|
|
|
imre
Vana Pingviin
Liitunud: 16.08.2005
Postitused: 2648
Asukoht: Saku kant
Distributsioon: Ubuntu
|
|
Saan ma nüüd õigesti aru, et sa tahad ilma ruuteris toimetamata/kaableid liigutamata vaadata nii telekast filmi kui ka suunata pärast sinna mõni AVI fail või DVD?
|
|
|
|
_________________ Enne teema püstitamist kasutage OTSINGUT
Küsi targalt: Infot siit!
Kui aru ei saa, siis küsi.
|
|
|
|
mihkel
Vana Pingviin
Liitunud: 16.04.2006
Postitused: 1284
Distributsioon: Fedora/Centos
|
|
imre kirjutas: | Saan ma nüüd õigesti aru, et sa tahad ilma ruuteris toimetamata/kaableid liigutamata vaadata nii telekast filmi kui ka suunata pärast sinna mõni AVI fail või DVD? |
Selline mu plaan oli tõesti.
|
|
|
|
|
|
|
|
Valdur55
Vana Pingviin
Vanus: 30
Liitunud: 02.06.2007
Postitused: 640
Asukoht: Tartu
Distributsioon: *buntu
|
|
Ma ise pole programeerija ja linuxis scriptimisest ka midagi ei jaga ,aga ruuteri confimisega olen kokku puutunud.
Puust ja punaselt teha siis värk oleks selline:
Kui käsu eth bridge vlan iflist tulemus on see (vaikimi lahendus) ,et ethport4 on listis Iptv ,siis rakendatakse käsku:
eth bridge group move intf ethport4 name default
Aga kui eth bridge vlan iflist käsu tulemus on see ,et ethport4 kuvatakse listis default ,siis rakendatakse käsku eth bridge group move intf ethport4 name iptv .
See oleks siis täisautomaatne.
Aga no.. Ühe poolselt võiks ka olla ju. Ühe osaga läheb sisse ja teisega se funktsioon sisse.
Ehk siis ühe poole mõte oleks selline:
Kood: | 1) ühendatakse ruuteriga läbi telneti
2) logidakse sisse
3) antakse ruuterile käsk ,et see liigutaks ethport4-ja default gruppi
4)teatud aja tagant pannakse terminali aken kinni (ruuterile aja andmiseks ja kasutaja teadvustamiseks kas toiming õnnestus)
|
Selline asi peaks ju täitsa võimalik olema? Mina oma kogemuse põhjal ei saa vahendeid öelda
Muidu ma arvan ,et Imre antud koodijupp on täitsa kõlbulik.
Ühendatakse telnetiga ruuteri külge. Siis saadetakse kasutajatunnus ja parool. Siis saadetakse ruuteile mingi käsk. Siis sulgetakse telneti session.
Ja kui nende kahe poole skripti jupidele panna töölauale otsetee või teha käsk mille tagajärjel kävitatakse skript.
No ,et jäädavat muudatust teha mis säiliks ka pärast restarti pead veel andma ruuterile käsu :saveall siis see kõik muudatused salvestatakse.
Parandage kui millegiga eksin.
|
|
|
|
|
|
|
|
obundra
Vana Pingviin
Vanus: 50
Liitunud: 04.08.2005
Postitused: 1213
Asukoht: 127.0.0.1
Distributsioon: RHEL, Solaris, Debian, Gentoo
|
|
Ma mõtlesin just sellist varianti, et ruuteris jookseb skript, mis näiteks mii-tooli abil kontrollib kas vastavas pordis on link püsti või mitte ja siis vastavalt sellele liigutab interfeisi kas iptv või default gruppi.Ei oleks eriti keeruline lahendus ja reageeriks automaatselt justnimelt kaabli ümbertõstmisele ning ruuterisse sisselogimist polekski vaja.Vähemalt sellisena näen ma seda asja oma vaimusilmas.Kuna mulle omale ühtegi Aminot ilmselt niipea kätte ei satu, siis ei oska hetkel rohkem kaasa rääkida.
|
|
|
|
_________________ IT teenused
|
|
|
|
imre
Vana Pingviin
Liitunud: 16.08.2005
Postitused: 2648
Asukoht: Saku kant
Distributsioon: Ubuntu
|
|
Amino ei puutugi asjasse. Temal täiesti ükskõik kus pesas ta istub. Peaasi, et suudab multicasti grupiga liituda.
Mihklil tundub olevat vana ST716i jurakas.
Uuematel purkidel, TG585 ja 784 pole enam vahet kuhu pessa Amino torkad.
Põhjusmõtteliselt saaks mingi taolise skripti valmis teha nii et kaablit liigutama ei pea.
Ma kahtlen, et nö mõlemat korraga saab.
Mingi skript tuleks enne käima vedada mis ruuteris siis tarkvaraliselt muudatused ära teeb ja kui arvutist digiboksi suunatud film vaadatud, siis taastab eelmised sätted ja võimalik jälle telekat vaadata.
Mul ei ole hetkel vanema softiga ruuterit/vanemat ruuterit käepärast, et katsetada.
Telekast ja arvutist korraga vaatamise võimalus on ka olemas.
Kunagi õnnestus seda teha, aga korrata enam mitte.
|
|
|
|
_________________ Enne teema püstitamist kasutage OTSINGUT
Küsi targalt: Infot siit!
Kui aru ei saa, siis küsi.
|
|
|
|
Valdur55
Vana Pingviin
Vanus: 30
Liitunud: 02.06.2007
Postitused: 640
Asukoht: Tartu
Distributsioon: *buntu
|
|
nii. Puht huvist vaatasin mis su scipt teeb.
Tulemus:
Kood: | Can't locate Net/Telnet.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at imre.pl line 2.
BEGIN failed--compilation aborted at imre.pl line 2.
|
Ehk siis ma tegin tektsti ediitoriga faili imre.pl mille käivitasin käsuga "perl imre.pl"
Üritasin ise natuke skriptida perlis, aga kaugele eriti ei saanud. Netis otsides leidsin ,et käsk "system" + mingi süsteemi käsk= tehakse see käsk teoks.
Ehk siis sain ainult telneti sisselogimis dialoogi ette. (system telnet suvakas.ip.aadress) .
Muidu digitv-d saad arvutis näha kui tõstad oma arvuti pordi iptv kruppi või kui on uuema frimwarega (automaatika sees) siis muudad oma võrgukaardi mac aadressi kujule 00:02:02:*:*:* ja siis saad ip aadressi mis algab 10-ga.
Mul endal töötab küll digitv ja arvutis iptv korraga edukalt.
|
|
|
|
|
|
|
|
imre
Vana Pingviin
Liitunud: 16.08.2005
Postitused: 2648
Asukoht: Saku kant
Distributsioon: Ubuntu
|
|
Kood: | install Net::Telnet |
|
|
|
|
_________________ Enne teema püstitamist kasutage OTSINGUT
Küsi targalt: Infot siit!
Kui aru ei saa, siis küsi.
|
|
|
|
mihkel
Vana Pingviin
Liitunud: 16.04.2006
Postitused: 1284
Distributsioon: Fedora/Centos
|
|
Mul on tõesti see "esimese laine" tellis - ST716v5. Nagu ma aru saan, siis seda sorti automaatikat, mida mina soovin ja mida uuemad toetavad, pole võimalik 716-ga saavutadagi? Või aitab firmware uuendus? Praegu öeldakse mulle, et tarkvara kannab numbrit 6.2.17.4.
-e
Uurisin veidi ja paistab, et 6.2.17.4 ongi viimane versioon, mida Elion sellele junnile pakub. Kahjuks aga ruuterisse endasse ma mingisuagust eraldi skripti jooksma panna ei oska.
Kui suudan midagi tarka välja mõelda, eks siis annan teada, seniks jääb telnet
|
|
|
|
|
|
|
|
wk
Vana Pingviin
Liitunud: 24.10.2007
Postitused: 1133
Asukoht: Tallinn, vahel Vastseliina vald
Distributsioon: Debian, Kubuntu
|
|
Praktiliselt kõik olulisemad perli moodulid on debiani/ubuntu jaoks ära pakitud, seega on vähema kogemusega kasutajatel tungivalt soovitatav paigutada ka perli mooduleid läbi pakihalduri. Vastasel korral võivad tekkida ebakõlad cpani ja süsteemsete moodulite vahel.
Õige paki leidmiseks on mitu võimalust. Näiteks võib otsida failinime järgi packages.ubuntu.com-ist, praegusel juhul Telnet.pm-i.
Käsurealt aga näiteks nii: Kood: | $ apt-cache search telnet | grep -i perl
libnet-telnet-perl - Script telnetable connections
libcgi-formalware-perl - Perl module for converting an XML file into a suite of CGI forms
libnet-telnet-cisco-perl - Additional functionality to automate Cisco management
libnetapp-perl - Perl modules for managing NetApp's NAS devices
|
Ja siis juba install: Kood: | apt-get install libnet-telnet-perl |
|
|
|
|
_________________ Kõike hääd,
WK
|
|
|
|
Valdur55
Vana Pingviin
Vanus: 30
Liitunud: 02.06.2007
Postitused: 640
Asukoht: Tartu
Distributsioon: *buntu
|
|
Nii.Seda dynvlan värki sul pole vaja siin üldse, see on segav faktor kui ruuter automaaselt oma suva järgi tõstab eth porte. Mul dynvlan Tg585 kinni keeratud.
Homme kirjutan oma algelise scripti siia foorumisse. Ja mihkel ,katsu sa öelda ,et siuke asi pole võimalik : Ma olen 100% kindel et näiteks käsu perl tv-in.pl rakendades muudetakse sul ruueris asi ära ja sa ei pea jalga ruuterisse tõstma.
Ruuterisse sellist niipidist automaatikat oleks suht mõtetu teha ,sest nii või naa peab arvuti sul lahti olema kui sa filmi streamid üle lan-i digiboxi.
WK. Tänud ,ei mõelnudki et võiks telnet-i ja per-i koos otsida. Ma otsisin ainult synapticus perli .
Oh. esimesed sammud programeerimisel ju .
Alguses saab olema kaks eraldi scipti ja siis kui natuke puurida veel siis on kindel ,et saab suht automaatseks ja asi laheneb ühe käsuga. Natuke mauaali uurides saaks asja lahendada "if" asjaga.
|
|
|
|
|
|
|
|
imre
Vana Pingviin
Liitunud: 16.08.2005
Postitused: 2648
Asukoht: Saku kant
Distributsioon: Ubuntu
|
|
Kood: |
#!/usr/bin/perl -w
use Net::Telnet ();
$host = '10.0.0.138';
$user = 'Administrator';
$pass = '';
$t = new Net::Telnet ( Timeout => 10,Prompt => '/.*=>$/i');
$t->open($host);
$t->login($user, $pass);
$t->cmd(':eth bridge group move intf ethport4 name default');
$t->waitfor('/>$/i'); # ootad prompti
exec 'vlc'; #vead VLC käima
$t->cmd(':eth bridge group move intf ethport4 name iptv'); #tõstad TV vaatamiseks tagasi
$t->waitfor('/>$/i'); # ootad prompti
$t->cmd(':saveall');
$t->waitfor('/>$/i');
$t->cmd(':exit');
$t->close(); |
Midagi sellist näiteks. Aga jah, mul ei ole ühtegi vaja ruuterit millega katsetada hetkel.
|
|
|
|
_________________ Enne teema püstitamist kasutage OTSINGUT
Küsi targalt: Infot siit!
Kui aru ei saa, siis küsi.
Viimati muutis imre 21.10.2009, 17:06; muudetud 1 kord
|
|
|
|
hannovene
Pingviini aktivist
Liitunud: 04.09.2008
Postitused: 104
Distributsioon: Ubuntu 10.04
|
|
Äkki pole seda perli ja mingeid libe üldse vahele vaja. Scriptime otse bashis.
1. Bashi scriptis käivitame käsu telnet open 192.168.1.254
2. Kuidas autentida?
3. Õnnestuks nüüd ainult telnet open käsule ette anda käsud, mida ta peab täitma.
Käsk "man telnet" annab järgmised juhtnöörid:
Kood: |
open host [[-l] user][- port]
Open a connection to the named host. If no port number is specified, telnet will
attempt to contact a telnet daemon at the standard port (23). The host specifica‐
tion may be a host name or IP address. The -l option may be used to specify a user
name to be passed to the remote system, like the -l command-line option.
When connecting to ports other than the telnet port, telnet does not attempt telnet
protocol negotiations. This makes it possible to connect to services that do not
support the telnet protocol without making a mess. Protocol negotiation can be
forced by placing a dash before the port number.
After establishing a connection, any commands associated with the remote host in
/etc/telnetrc and the user's .telnetrc file are executed, in that order.
The format of the telnetrc files is as follows: Lines beginning with a #, and blank
lines, are ignored. The rest of the file should consist of hostnames and sequences
of telnet commands to use with that host. Commands should be one per line, indented
by whitespace; lines beginning without whitespace are interpreted as hostnames.
Lines beginning with the special hostname ‘DEFAULT’ will apply to all hosts. Host‐
names including ‘DEFAULT’ may be followed immediately by a colon and a port number
or string. If a port is specified it must match exactly with what is specified on
the command line. If no port was specified on the command line, then the value
‘telnet’ is used. Upon connecting to a particular host, the commands associated
with that host are executed.
|
Seega peaks telneti käsud kirjutama kuidagi faili: ~/.telnetrc või /etc/telnetrc
|
|
|
|
|
|
|
|
wk
Vana Pingviin
Liitunud: 24.10.2007
Postitused: 1133
Asukoht: Tallinn, vahel Vastseliina vald
Distributsioon: Debian, Kubuntu
|
|
hannovene kirjutas: | Äkki pole seda perli ja mingeid libe üldse vahele vaja. Scriptime otse bashis.
| See kindlasti väärib katsetamist (kasvõi huvi pärast), aga üldiselt peab sellisel juhul üle keskmise olema kursis käsurea võimalustega (sisendite-väljundite püüdmine ja ümbersuunamine, "magamised" ja kontroll). Perli moodulis on see kõik juba "leiutatud". Perl pole kohustuslik, ka python on selliste asjade jaoks paras tööriist. Kui tahta bashiga piirduda, siis võiks pigem otsida valmis skript, näiteks üks esimesi vastuseid guuglis:
http://www.linuxforums.org/forum/linux-programming-scripting/14689-telnet-bash-script.html
|
|
|
|
_________________ Kõike hääd,
WK
|
|
|
|
Valdur55
Vana Pingviin
Vanus: 30
Liitunud: 02.06.2007
Postitused: 640
Asukoht: Tartu
Distributsioon: *buntu
|
|
Kood: | #!/usr/bin/perl -w
use Net::Telnet ();
$host = '192.168.1.254';
$user = 'kasutaja';
$pass = 'kasutaja';
$t = new Net::Telnet (Timeout => 10,Prompt => '/.*=>$/i');
$t->open($host);
$t->login($user, $pass);
@result1 = $t->cmd(':eth bridge group move intf ethport4 name default ');
system 'vlc';
@result2 = $t->cmd(':eth bridge group move intf ethport4 name iptv');
$t->close();
print @result1;
print '
';
print @result2; |
Muditud ja parandatud imre versioon . Tegelikult on igati norma nii ,aga siis peab möllama selle sama vlc-ga mis lahti tuleb. Kui kasutad teist akent siis script ei toimi.
Saveall käsku pole vahepeal vaja toppida, niikuinii tõstad sa asja tagasi.
Saveall käsku kasutad siis kui sa tahad näiteks säilitada ehtporti vlan rühmas ka pärast restarti (kui kasutatakse veel tagasitõstmise käsku siis mingit uut infot ruuteri jaoks pole tekitatud).
Aga teine võimalus on ka kuidas asja lahendada. See siis oleks selline mis automaatselt tuvastab kas on vaja pista rühma iptv või default . Seda siis saaks lahendada "if" abil vist.
|
|
|
|
Viimati muutis Valdur55 21.10.2009, 18:24; muudetud 1 kord
|
|
|
|
imre
Vana Pingviin
Liitunud: 16.08.2005
Postitused: 2648
Asukoht: Saku kant
Distributsioon: Ubuntu
|
|
Milleks see @result1 ja @result2 sul eraldi on?
Ja mis teisest aknast sa räägid?
:saveall on tihtipeale vajalik. Need ST purgid kipuvad aegajalt segaseks minema ja kui sul on mingi kindel seadistus salvestatud, seda parem.
Ja :saveall minu puhul oli lõpus, peale seadistuste taastamist.
|
|
|
|
_________________ Enne teema püstitamist kasutage OTSINGUT
Küsi targalt: Infot siit!
Kui aru ei saa, siis küsi.
|
|
|
|
Valdur55
Vana Pingviin
Vanus: 30
Liitunud: 02.06.2007
Postitused: 640
Asukoht: Tartu
Distributsioon: *buntu
|
|
Jap. Reult1 ja Result2 asja pole tõesti vaja. Ja mis mõte sel on kui lõpus kuvatakse ju
Kuvamine on jällegi kasulikum ,sest siis teatatakse ka tekkinud erroritest.
See teise akna jutt... Kui sa askeldad kahe vlc-ga, üks on ennem avatud ja teine avati scripti rakendamisel. Ja kui loodad ,et Digitv võimalus taastatakse siis loodad halvasti, sest selle skripti kämatömmatud VLC on lülitiks mis jätkab scripti toimimist.
Waitfor teatab sellist asja: pattern match timed-out .
exec ja system peaks vist sama tööpõhimõttega olema .
|
|
|
|
|
|
|
|
|