Router adatok kezelése (raspberry)

Router adatok kezelése (raspberry)
2016-06-04T20:06:30+02:00
2016-06-09T20:42:44+02:00
2022-12-03T18:41:50+01:00
mrkd
Sziasztok! Az lenne a problémám, hogy a router kezelőfelületéről szeretném leszedni a network statusban lévő adatokat és elmenteni egy fájlban, amit utána egy adott ip címre küldenék tovább. Ehhez szeretnék írni egy programot ami bizonyos időközönként ezt megtenné. Milyen nyelven lehetne ezt legkönnyebben megoldani és milyen parancsok vannak esetleg erre? Az a helyzet nem tudok elindulni, így ha valaki csak linket tud adni vagy pár támaszpontot kezdéshez már annak is nagyon örülnék, hogy onnan tovább tudjam magamnak vinni a dolgot.
Mutasd a teljes hozzászólást!

  • Nem javaslat csak egy észrevétel...
    Akkor csak el kell jutnod arra a szintre, melyre már a következő topic kérdezője eljutott...
    Mutasd a teljes hozzászólást!
  • Hát mondjuk: python + selenium webdriver, phantomJS és lxml modulok

    Kezdő lökés:

    from selenium import webdriver password = "My password" driver = webdriver.PhantomJS() driver.get("http://192.168.2.1/login.htm") driver.switch_to.frame("mainFrame") password = driver.find_element_by_name("pws_temp") password.send_keys(password) password.submit() ... és innen folytatod tovább
    de megoldható perl, bash, C/C++ sőt asm -el is.
    Mutasd a teljes hozzászólást!
  • Köszi szépen mindkét hozzászólást. Úgy érzem kezdődhet ezek alapján már a rengeteg olvasás és tanulás, mert a jelenlegi tudásom vajmi kevés ehhez úgy érzem. :)
    Mutasd a teljes hozzászólást!
  • Egyébbként nem tudom, hogy mi végre szeretnéd, de a DHCP kivételével -- amit ki lehet küszöbölni -- semmi sem változik magától. A külső IP címet -- ha újra indítottad a routert -- simán le tudod kérdezni bash-ból is.

    function ext-ip() { curl http://ipecho.net/plain; echo; }
    Mutasd a teljes hozzászólást!
  • Hálózat teszteléshez kellene a suliba (ezt kaptam feladatnak), csak éppenséggel nem vagyok annyira otthon programozásban és nyakamba szakadt hirtelen.
    Mutasd a teljes hozzászólást!
  • Hali,

    írd csak le ide a teljes feladatot. (a pontos szövegét) És utánna kapsz tanácsot, hogy merre indulj el.
    Mutasd a teljes hozzászólást!
  • Pontos szövege nincs, mert szóban mondták el. Kaptam egy routert  és egy raspberryt és azt mondták, hogy kellene írni egy programot ami bizonyos időközönként belép a router admin felületére és a network statusból az adatokat tovább küldi egy adott IP címre. Vagy előbb lementi egy fájlba és utána azt a fájlt küldi el az IP címre.
    Mutasd a teljes hozzászólást!
  • Szia! A témával kapcsolatban amit írtam tudnál segíteni kicsit többet? Nagyon nem jutok előre és jövőhétre szeretnének valami programot, már az se baj ha nem raspberryre lesz első körben azt mondták.

    Kaptam egy lte hálózatos routert és egy raspberryt és azt mondták, hogy kellene írni egy programot ami bizonyos időközönként belép a router admin felületére és a network statusból az adatokat tovább küldi egy adott IP címre. Vagy előbb lementi egy fájlba és utána azt a fájlt küldi el az IP címre.

    Ha esetleg kell még valami pontosabb info és azt megírod mi, akkor pontosítok ha tudok. Válaszod előre is köszönöm. Üdv: Ádám

    legközelebb tedd az álás/munka rovatba.

    Nekem cisco routerem van.
    #!/usr/bin/env python import paramiko import time import os def get_command_output(cmd, remote_conn, inFile, vsh, vsh_lc): '''Execute command & captures output in inFile''' remote_conn.send(cmd) time.sleep(3) not_done = True MAX_RETRY = 5 while (not_done or MAX_RETRY > 0): if remote_conn.recv_ready(): output = remote_conn.recv(65535) inFile.write(output) output = 0 if MAX_RETRY < 5: print ("RESET RETRY") MAX_RETRY = 5 else: not_done = False MAX_RETRY = MAX_RETRY - 1 if __name__ == '__main__': ip = '172.68.100' username = 'admin' password = 'pass' remote_conn_pre = paramiko.SSHClient() remote_conn_pre.set_missing_host_key_policy( paramiko.AutoAddPolicy()) remote_conn_pre.connect(ip, username=username, password=password, look_for_keys=False, allow_agent=False) print "SSH connection established to %s" % ip remote_conn = remote_conn_pre.invoke_shell() print "Interactive SSH session established" disable_paging(remote_conn) remote_conn.send("show switch > show_switch_op\n") time.sleep(2) os.system("sshpass -p 'pass' scp -o StrictHostKeyChecking=no admin@172.68.1.100:/home/admin/show_switch_op ./") os.system("cat show_switch_op | tr -s ' ' > show_switch_op.tmp") ingredients = file("show_switch_op.tmp", 'r') cols, indexToName = getColumns(ingredients) ingredients.close() num_of_nodes = len(cols[3]) for switch_cnt in range(2, num_of_nodes-1): inband_addr = cols[3][switch_cnt] print (inband_addr) cmd1 = "sshpass -p 'pass' ssh " + str(inband_addr) #print (cmd1) remote_conn.send(cmd1 + "\n") time.sleep(10) switch_name = str(cols[11][switch_cnt]) filename = "tech_support_" + str(cols[11][switch_cnt]) filepath = "/var/log/" file = filepath + filename print (file) f = open(str(filename), 'a+') output = remote_conn.recv(1000) output = 0 remote_conn.send("\n") print ("DEBUG LOG END READ WRITE START " + switch_name + " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") get_command_output("show ip route vrf all\n", remote_conn, f, False, False) f.close() print ("DEBUG LOG END READ WRITE COMPLETE " + switch_name + " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") remote_conn.send("\n") time.sleep(1) remote_conn.send("exit\n") time.sleep(1) remote_conn.close(); remote_conn_pre = paramiko.SSHClient() remote_conn_pre.set_missing_host_key_policy(paramiko.AutoAddPolicy()) remote_conn_pre.connect(ip, username=username, password=password, look_for_keys=False, allow_agent=False) print "SSH connection established to %s" % ip # Use invoke_shell to establish an 'interactive session' remote_conn = remote_conn_pre.invoke_shell() print "Interactive SSH session established" disable_paging(remote_conn) remote_conn.close()

    A többi műveletet terád bízom.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd