|
Мова програмування: Perl
Розмір скрипту: 712 байта (версія 1.0.)
Метод виклику: CGI
Цей приклад програмного коду я навіть про себе не можу назвати "проектом". Це скоріше
підтвердження відомої істини, про те що швидко можна зробити лише нікому непотрібну річ. Навіть результат
своєї роботи він повертає не як HTML, а як звичайний текст.
На підтвердження своїх слів, нижче навожу повний приклад цього Perl-скрипту. Якщо відкинути перевірки
значень, що були передані користувачем, то суть програмного коду зводиться до одного рядку (у тексті він виділений напівжирним
шрифтом), а саме виклику функції модуля Sockets::gethostbyaddr.
| Скрипт host_by_ip.cgi |
#!/usr/bin/perl -Tw
use strict;
use CGI::Carp qw(fatalsToBrowser);
use CGI qw(:standard);
use Socket;
print "Content-type: text/plain\n\n";
print "Результат запиту:\n\n";
my @ips=split /\n/, param('ips');
my $n=1;
foreach my $ip (@ips)
{
my @oktets=($ip=~/(\d+)\.(\d+)\.(\d+)\.(\d+)/);
my $err_data=1;
if ($#oktets==3)
{
foreach my $okt (@oktets)
{
if (($okt<0) or ($okt>255))
{
$err_data=0;
last;
}
}
}
else { $err_data=0;}
print $n++,') ';
if (!$err_data)
{
print "Помилка введення IP-адреси\n";
}
else
{
my $ipp = pack ("C4", @oktets);
my $url = gethostbyaddr ($ipp, AF_INET)||'Визначити URL неможливо!';
print join('.',@oktets), " => $url\n";
}
}
|
І все ж таки дивна штука програмування. Навіть таку просту програму можна покращити.
Так заміна рядка my @ips=split /\n/, param('ips'); на my @ips=split /\n+|\s+/, param('ips');
дозволить краще виглядати рядку адреси у браузері.
Ви побачити щось на зразок:
http://www.senyk.poltava.ua/cgi-bin/smpst/host_by_ip.cgi?ips=127.0.0.1+127.0.0.2
замість
http://www.senyk.poltava.ua/cgi-bin/smpst/host_by_ip.cgi?ips=127.0.0.1%0D%0A127.0.0.2
|