W niniejszym artykule postaram się przedstawić budowę skanera portów w PHP.
Poniżej został umieszczony kod skanera portów. Wszystkie niezbędne informacje są zamieszczone w komentarzach.
Kod:
<?php
/**
* Skrypt pozwalający na skanowanie hostów,
* wykrywanie portów otwartych i zamkniętych.
*
* (c) by AndyPSV
*/
// wstawiamy arkusz stylów, aby wyniki porządnie wyglądały (jak szaleć to na maksa ;)
echo '<html>'."\n"
.' <head>'."\n"
.' <title>Skaner portów byc AndyPSV</title>'."\n"
.' <style type="text/css">'."\n"
.' body{background-color:#FFFFFF;font: 13px Tahoma; color: #000000; vertical-align: middle;}'."\n"
.' </style>'."\n"
.' </head>'."\n"
.'<body>'."\n";
// skrypt może się długo wykonywać !
set_time_limit(0);
// wyłączamy zgłaszanie błędów
error_reporting(0);
// ustaw host do skanowania...
$host = '127.0.0.1';
// ustaw wartości wpisując np. wartość 0
// poniższe wartości zostały wpisane dla przykładu...
$port_begin = '78';
$port_end = '81';
// ustawiamy dwie zmienne domyślne... potrzebne do wyświetlenia statystyk NIE MODYFIKOWAĆ !
$open_ports = '0';
$closed_ports = '0';
// sprawdzamy czy wartości zostały wpisane ;]
if(empty($host) OR empty($port_begin) OR empty($port_end)) {
die('Nie zostały wypełnione odpowiednie pola - zajrzyj do źródła skryptu i uzupełnij !');
}
echo '· <b>Zeskanowane porty:</b>'."\n"
.'<br>'."\n";
for($i = $port_begin; $i <= $port_end; $i++) {
$fp = fsockopen($host, $i);
if($fp) {
echo '<b>'.$i.'</b> -> <b>otwarty</b>'."\n"
.'<br>';
$open_ports++;
} else {
echo $i.' -> zamknięty'."\n"
.'<br>';
$closed_ports++;
}
fclose($fp);
}
echo '<br>'."\n"
.'<b>Statystyki:</b>'."\n"
.' <br>'."\n"
.'Ilość portów otwartych: <b>'.$open_ports.'</b>'."\n"
.' <br>'."\n"
.'Ilość portów zamkniętych: '.$closed_ports."\n"
.'</body>'."\n"
.'</html>';
?>
Plik .php należy umieścić na serwerze, na którym nie została zablokowana funkcja fsockopen() - jest to bardzo ważne, ponieważ w przeciwnym razie skrypt 'nie zadziała', instrukcje w nim zawarte nie zostaną wykonane. W przypadku problemów ze znalezieniem odpowiedniego serwera proponuje wziąść sobie do serca słowa: "google.com is the key !".
Życzę miłego korzystania !
Pozdrawiam,
AndyPSV [ mailto:
andypsv@irc.pl ]
www.cfaniak.pl ;]