Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z podstawieniem zmiennej do skryptu.
artvip
post 18.05.2010, 07:21:40
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 15.02.2009

Ostrzeżenie: (0%)
-----


Witam,

mam taki sobie skrypcik:

  1. <?php
  2. $ipaddress = '192.168.0.1';
  3.  
  4. $nbtstat = "nbtstat -A ".$ipaddress;
  5.  
  6. exec($nbtstat, $result);
  7.  
  8. echo "<td>";
  9.  
  10.  
  11. print_r($result[14]);
  12. print_r($result[15]);
  13. echo "<br>";
  14.  
  15. foreach ($result as $row) {
  16. if (strpos($row,"<03>"))
  17. $username = strtok($row," ");
  18. }
  19.  
  20. echo $username;
  21. ?>


Wykonuje zapytanie nbtstat -A "adres IP". Chciałbym wykorzystać ten skrypt tak aby pytał o różne adresy IP (np. podane w array, z bazy mysql lub inne sensowne rozwiązanie..) zwracając wynik a już najlepiej jak mógłbym użyć parametru od - do (np. 192.168.0.1 - 192.168.0.255).

Wydaje mi się, że może jakaś pętla mi tutaj pomoże.. ?

Nie wiem jak się za to zabrać a kombinowałem już na różne sposoby i niestety bez efektu sad.gif Ktoś pomoże ?

Dzięki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
JoShiMa
post 18.05.2010, 09:04:42
Post #2





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

Ostrzeżenie: (0%)
-----


Pokaż co spłodziłeś to Ci powiemy gdzie jest źle.


--------------------
Go to the top of the page
+Quote Post
artvip
post 18.05.2010, 12:38:24
Post #3





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 15.02.2009

Ostrzeżenie: (0%)
-----


Już działa smile.gif

Proszę - może komuś się przyda skrypt.

Pokazuje MACa + user w domenie. Prosiłbym jednak o ewentualną pomoc przy zrobieniu zakresu w kodzie a nie tak jak ja to zrobiłem - dane z mysql (od - do np. 192.168.0.1 - 192.168.0.255).

Kod:
  1. <?php
  2.  
  3. $connection = @mysql_connect("xxx", "xxx", "xxx")
  4.  
  5. or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
  6. $db = @mysql_select_db("xxx")
  7. or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
  8.  
  9. $query = "
  10. select
  11. *
  12. from
  13. ip";
  14.  
  15. $results = mysql_query($query) or die(mysql_error());
  16.  
  17. while ($row = mysql_fetch_assoc($results)) {
  18.  
  19. foreach ($row as $value) {
  20.  
  21. echo $value;
  22.  
  23.  
  24.  
  25.  
  26. $nbtstat = "nbtstat -A ".$value;
  27.  
  28. exec($nbtstat, $result);
  29.  
  30. echo "<td>";
  31.  
  32.  
  33. print_r($result[14]);
  34. print_r($result[15]);
  35. echo "<br>";
  36.  
  37. foreach ($result as $row) {
  38. if (strpos($row,"<03>"))
  39. $username = strtok($row," ");
  40. }
  41.  
  42. echo $username;
  43. }
  44.  
  45.  
  46. }
  47. ?>



dzięki
Go to the top of the page
+Quote Post
marcio
post 18.05.2010, 18:18:12
Post #4





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Jesli cie dobrze zrozumialem w bazie chcesz miec zapisane:
Cytat
192.0.0.1 -> 192.*.*.*

I ma ci skanowac wszystko az do 192.255.255.255
Wiec napisalem na szybko sobie taka funkcje:
  1. <?php
  2.  
  3. function ScanFromTo($from = 1, $to = 255, array $ips = array()) {
  4.  
  5. $ipRange = explode('.', $ips[1]);
  6.  
  7. foreach($ipRange as $number) {
  8.  
  9. if($number == '*') {
  10.  
  11. for($i = $from; $i <= $to; $i++) {
  12.  
  13. $ipToFrom[] = str_replace('*', $i, $ips[1]);
  14.  
  15. }
  16.  
  17. return $ipToFrom;
  18.  
  19. }
  20.  
  21. }
  22.  
  23. }
  24.  
  25. print_r(ScanFromTo(1, 255, array('192.0.0.1', '192.0.*.*')));
  26.  
  27.  
  28. ?>

Zamienia ci znak * na zakres jaki chcesz, tylko jak narazie zakres idzie w parze, jak bede mial chwile czasu dokoncze jak nie to 80% juz masz.


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
artvip
post 18.05.2010, 18:58:52
Post #5





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 15.02.2009

Ostrzeżenie: (0%)
-----


Dzięki za pomoc. Takie rozwiązanie właśnie mnie interesowało smile.gif

Teraz muszę pomyśleć jak to sklecić w całość żeby array potraktowany został jako zmienna i wykonał:

  1. $nbtstat = "nbtstat -A ".$value;


dla wszystkich wartości z zakresu:

  1. print_r(ScanFromTo(1, 255, array('192.0.0.1', '192.0.*.*')));


Jak ktoś ma ochotę pomóc to będę wdzięczny... a jak nie to kilka dni główkowania i zapewne coś się wymyśli winksmiley.jpg)

Dzięki
Go to the top of the page
+Quote Post
marcio
post 19.05.2010, 00:03:23
Post #6





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


  1. <?php
  2.  
  3. $ips = ScanFromTo(1, 255, array('192.0.0.1', '192.0.*.*'));
  4.  
  5. foreach($ips as $ip) {
  6.  
  7. $nbtstat = "nbtstat -A ".$value;
  8. exec($nbstat);
  9. //reszta kodu w petli ;]
  10.  
  11. }
  12.  
  13. ?>

Tylko spojrz dobrze jakie ip generuje moj kod.
Podajac zakres: 192.0.*.*
Generuje ci zakres w parze:
192.0.1.1
192.0.2.2
192.0.3.3
A powinien:
192.0.1.1
192.0.1.2
192.0.1.3
ipt..itd..

Ten post edytował marcio 19.05.2010, 00:07:33


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
artvip
post 19.05.2010, 07:03:02
Post #7





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 15.02.2009

Ostrzeżenie: (0%)
-----


Tak tak smile.gif Sprawdziłem wcześniej. Bardzo lekko ingerując w twój kod zrobiłem tak:

  1. print_r(ScanFromTo(1, 255, array('192.0.1.1', '192.0.1.*')));


i mam wtedy:
192.0.1.1
192.0.1.2
192.0.1.3
itd.

czyli to o co mi chodziło..

pozdr.
Go to the top of the page
+Quote Post
marcio
post 19.05.2010, 11:42:59
Post #8





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Racja bo robisz lokalny zakres sieci :]
Co jak zrobie zakres zewnetrznych ip...?Bedzie dzialalo w parze co za tym idzie wszystkim ip nie sprawdzisz snitch.gif ale do twoich wymagan starczy.


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:55