terminated Posted December 2, 2010 Report Share Posted December 2, 2010 Здравейте , ето и проблема - скрипта си работи на рутерборд , но на пц стига до някъде и дава таймаут !?!?, когато няма никакъв трафик на машината успява да ги добави всичките. Сложих лан карта само за телнет скрипта , която е вързана директно за машината на която се изпълнява , но проблема си остава. Ето и скрипта: #!/usr/bin/perl use Data::Dumper; use Net::Telnet (); $telnet1 = new Net::Telnet ( Host => "1.1.1.2", Timeout => 20, Dump_log => "./log", Prompt => '/\[.+\] > $/'); $telnet1->login("user", "passwor"); my $sth; my @row; my @subnet; my $gateway; my $login; my $ip; my $speed; my $block; open(DATA, "</var/digital/sdp_INT/SDP_S15.TXT"); while (<DATA>) { my($line) = $_; chomp($line); if ($line =~ /([a-zA-Z0-9\_-]+)\|(\d)\|(\d+\.\d+\.\d+\.\d+)\|(\d+)/) { $login = $1; $block = $2; $ip = $3; $speed = $4*1000; if ($block == '0') { $telnet1->cmd("/queue simple add name=$login target-address=$ip max-limit=$speed/$speed interface=all place-before=all"); } if ($block == '1') { $telnet1->cmd("/queue simple remove $login"); } } } $telnet1->close; Link to comment Share on other sites More sharing options...
Administrator 111111 Posted December 2, 2010 Administrator Report Share Posted December 2, 2010 С коя версия на МТ? сериозно ли ползваш 1.1.1.2 за свръзка Харесай поста ^^^ Форумът е за взаимопомощ а не за свършване на чужда работа ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ Link to comment Share on other sites More sharing options...
terminated Posted December 2, 2010 Author Report Share Posted December 2, 2010 Пробвах първо с 4.13 , а сега съм с последната бета и при двете резултата е един. С лиценз левел 4 съм ,ако има значение Link to comment Share on other sites More sharing options...
Administrator 111111 Posted December 2, 2010 Administrator Report Share Posted December 2, 2010 какво показва лога на МТ ? Харесай поста ^^^ Форумът е за взаимопомощ а не за свършване на чужда работа ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ Link to comment Share on other sites More sharing options...
terminated Posted December 2, 2010 Author Report Share Posted December 2, 2010 Ами сега изтрих всичките queue (180) след пускането на 160-тото даде timeout и след няколко пускания на скрипта продалжават да са 160.. В лога от последвалите пускания на скрипта има само user admin log in / log out Link to comment Share on other sites More sharing options...
terminated Posted December 2, 2010 Author Report Share Posted December 2, 2010 Има ли начин да си взема queue-тата през radius ? На микротика ползвам само nat и queue simple Link to comment Share on other sites More sharing options...
Administrator 111111 Posted December 2, 2010 Administrator Report Share Posted December 2, 2010 Има вариант през API но там не вдявам много освен ако не ползваш вградения usermanager я разясни целевото приложение на скрипта и периода на изпълнението защото микротика може да прави същите неща и без външна намеса http://mikrotik-bg.net/index.php?topic=2168.0 http://mikrotik-bg.net/index.php?topic=2677.0 Харесай поста ^^^ Форумът е за взаимопомощ а не за свършване на чужда работа ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ Link to comment Share on other sites More sharing options...
terminated Posted December 2, 2010 Author Report Share Posted December 2, 2010 И аз се чудих на API-то , но не вдянах хич :-\ . Иначе не ползвам вградения мениджър ,а user-ите ги взимам от един текстов файл и общо взето неплатилите ги спирам , като им изтрия queue-to и всички остават в един общ малъй шейпър... Link to comment Share on other sites More sharing options...
Administrator 111111 Posted December 2, 2010 Administrator Report Share Posted December 2, 2010 http://forum.mikrotik.com/viewtopic.php?f=9&t=22744 чета тук и не зацепвам дано имаш по голям късмет с това API аз бих предпочел директно блокиране по мак адрес а и все още обичам да цъкам с мишката, някак по визуално ми е Харесай поста ^^^ Форумът е за взаимопомощ а не за свършване на чужда работа ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ Link to comment Share on other sites More sharing options...
terminated Posted December 3, 2010 Author Report Share Posted December 3, 2010 Това апи не е за мен Идея за скрипт подобен на моя за блокиране по мак ? Горе-долу ми е ясно как може да стане , но как да блокирам макове , които не са ми в базата ? Link to comment Share on other sites More sharing options...
danielskiii Posted December 3, 2010 Report Share Posted December 3, 2010 даваш на интерфейса arp reply-only Link to comment Share on other sites More sharing options...
terminated Posted December 6, 2010 Author Report Share Posted December 6, 2010 Пак закъсах .. предния проблем се оказа от "place-before=all". Реших да си блокирам юзерите по мак адрес и си преправих скрипта по този начин: #!/usr/bin/perl use Net::Telnet (); $telnet1 = new Net::Telnet ( Host => "1.1.1.2", Timeout => 20, Prompt => '/\[.+\] > $/'); $telnet1->login("user", "pass"); my $ip; my $block; my $mac; open(DATA, "</var/digital/sdp_INT/SDP_S15.TXT"); while (<DATA>) { my($line) = $_; chomp($line); if ($line =~ /([a-zA-Z0-9\_-]+)\|(\d)\|(\d+\.\d+\.\d+\.\d+)\|(\d+)\|([a-zA-Z0-9\_:-]+)/) { $block = $2; $ip = $3; $mac = $5; if ($block == '0') { $telnet1->cmd("/ip arp add address=$ip mac-address=$mac interface=339"); } if ($block == '1') { $telnet1->cmd("/ip arp add address=$ip mac-address=01:01:01:01:01:01 interface=339"); } } } $telnet1->close; Скрипта си работи добре , НО по този начин , ако се смени мак адреса на съществуващ юзер микротика не го replace,а си остава старият. EDIT: май намериш решението с - /ip arp set [find address=()] mac-address= Link to comment Share on other sites More sharing options...
terminated Posted December 8, 2010 Author Report Share Posted December 8, 2010 И отново за пореден път същият проблем /ip arp add address=$ip mac-address=$mac interface=339 .. никакъв проблем 960 арпа от раз , /ip arp set [find address=()] mac-address= 10-тина правила и любимия timeout.. Link to comment Share on other sites More sharing options...
Administrator 111111 Posted December 9, 2010 Administrator Report Share Posted December 9, 2010 Защо не го пренапишеш тоя скрипт да си се пуска директно в машината не отвън Харесай поста ^^^ Форумът е за взаимопомощ а не за свършване на чужда работа ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ Link to comment Share on other sites More sharing options...
terminated Posted December 9, 2010 Author Report Share Posted December 9, 2010 Ами .. най-добре ще е , но просто незнам как Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now