Все, что нужно для этого вписать в body следующий вызов
body onunload="alert(document.body.innerHTML)"
После обновления страницы можно читать код в нормальном виде.
Забавный взлом с элементами волшебства :)
Читать дальше...
Записки злого сисадмина...
body onunload="alert(document.body.innerHTML)"
cat /proc/cpuinfo
sudo dmidecode -t memory
free
gurza@cave:~$ free
total used free shared buffers cached
Mem: 509144 502728 6416 0 13348 66424
-/+ buffers/cache: 422956 86188
Swap: 995988 494180 501808
$date="11.08.1984";
$arr = explode('.',$date);
$day = $arr[0];
$month = $arr[1];
$year = $arr[2];
$date1 = arr[2].'-'.arr[1].'-'.arr[0];
echo (gmdate('Y', time() - strtotime($date1)) - 1970);
The valid range of a timestamp is typically from Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT. (These are the dates that correspond to the minimum and maximum values for a 32-bit signed integer). However, before PHP 5.1.0 this range was limited from 01-01-1970 to 19-01-2038 on some systems (e.g. Windows).
Замечание: В семействе ОС Microsoft Windows системные библиотеки, реализующие эту функцию, содержат ошибки, поэтому функция gmdate() на этих системах не поддерживает отрицательные значения аргумента timestamp.
В операционных системах Unix/Linux эта проблема не возникает, так как системные библиотеки в этих системах реализованы корректно.
PHP не может исправить ошибки в системных библиотеках. Для решения этой и подобных проблем обращайтесь к производителю операционной системы.
if (isset($_GET['bday'])) {
if (!eregi('^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4}$', $_GET['bday'])) {
$message = 'Некорректный формат даты.
';
$message .= 'Введите пожалуйста Вашу дату рождения в формате дд.мм.гггг (например, 29.11.1985).';
} else {
$arr = explode('.',$_GET['bday']);
$day = $arr[0];
$month = $arr[1];
$year = $arr[2];
$bday = $arr[2].'-'.$arr[1].'-'.$arr[0];
if ( $bday=strtotime($bday) ) {
$bday = (gmdate('Y', time() - $bday) - 1970);
} else {
$valid = 'false';
$message = 'Некорректный формат даты.
';
$message .= 'Введите пожалуйста Вашу дату рождения в формате дд.мм.гггг (например, 29.11.1985).';
echo "[{val:'$valid',msg:'$message'}]"; exit;
}
if ( $bday>=18 ) {$valid = 'true'; $message='';
} else {
$valid='false';
$message = 'Извините, но согласно правилам регистрироваться на сайте могут только совершеннолетние.';
}
}
}
root@debian:~# apt-get install iproute
root@cave:~# dmesg | grep -i ethВ примере, показанном в листинге выше, все достаточно просто. В компьютере установлено только два контроллера, причем меня интересует настройка только Ethernet сетевой карты Realtek, которой соответствует сетевой интерфейс eth0. Приведу еще один пример
r8169 Gigabit Ethernet driver 2.2LK-NAPI loaded
eth0: RTL8169s/8110s at 0xffffc20000030000, 00:0f:ea:66:40:f6, IRQ 193
eth1394: eth0: IEEE-1394 IPv4 over 1394 Ethernet (fw-host0)
r8169: eth1: link up
root@gn:~# zcat /var/log/messages.6.gz | grep -i ethВо-первых, стоит заметить, что использовалась другая команда для определения соответствия сетевых карт и интерфейсов. Дело в том, что команда dmesg выводит на экран только содержание файла /var/log/messages, но так как сервер gn, листинг с которого приведен в примере, имеет uptime порядка 50 дней, то записи стоит искать в более старом файле. Сетевой интерфейс eth0 соответствует интеловской сетевой карте, встроенной на материнской плате, eth1 и eth3 – две гигабитные карты, которые когда-то использовались для соединения двух различных сегментов сети. Получив эту информацию можно переходить к настройке.
Nov 10 19:11:51 gn kernel: e100: eth0: e100_probe: addr 0xfe9fd000, irq 169, MAC addr 00:30:48:22:2B:F8
Nov 10 19:11:51 gn kernel: e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection
Nov 10 19:11:51 gn kernel: e1000: eth3: e1000_watchdog: NIC Link is Up 1000 Mbps Full Duplex
root@cave:~# cat /etc/network/interfacesРассмотрим настройки более подробно. Запись auth eth0 означает, что интерфейс должен быть автоматически запущен при загрузке операционной системе.
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth1
iface eth1 inet static
address 192.168.1.11
netmask 255.255.255.0
gateway 192.168.1.1
iface eth1 inet staticОзначает, что происходит конфигурирование сетевого интерфейса eth1 и что IP-адрес будет задан статическим.
address 192.168.1.11 – непосредственно IP-адрес, присваиваемый сетевому интерфейсу;Настройка динамического IP адреса
netmask 255.255.255.0 – маска сети;
gateway 192.168.1.1 – шлюз, который должен осуществлять маршрутизацию в сети.
root@cave:~# cat /etc/network/interfacesЛегко видеть, что строка iface eth1 inet dchp определяет получение сетевого адреса по протоколу DHCP, то есть сетевой интерфейс получит динамический IP-адрес.
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth1
iface eth1 inet dchp
root@cave:~# dpkg -l | grep dhcpЗамечание. Обычно, для облегчения работы пользователей компьютерной сети системный администратор настраивает DHCP сервер таким образом, чтобы он передавал адреса первичного и вторичного DNS серверов при выдачи динамического адреса. Поэтому для некоторых настройка сети ограничивается записью двух строчек в файл /etc/network/interfaces. Но не лишним будет знать, как все-таки прописать руками доверенные DNS сервера в систему.
ii dhcp3-client 3.0.4-13 DHCP Client
ii dhcp3-common 3.0.4-13 Common files used by all the dhcp3* packages
root@cave:~# vim /etc/resolv.confАдреса прописываются следующим образом
nameserver 192.168.1.1Отметим, что записей nameserver может быть произвольное количество.
nameserver 4.2.2.2
auto eth0Конечно, вместо 01:02:03:04:05:06 – необходимо указать нужный Вам MAC. Отметим, что при использовании стационарного IP-адреса MAC-адрес будет прописываться точно также.
iface eth0 inet dhcp
hwaddress ether 01:02:03:04:05:06
root@cave:~# ifconfig eth0 down
root@cave:~# ifconfig eth0 hw ether 01:02:03:04:05:06
root@cave:~# ifconfig eth0 up
root@cave:~# /etc/init.d/networking restart
root@debian:~# ip addr showПозволяет вывести на экран сведения о всех сетевых интерфейсах системы. Для вывода информации по конкретному интерфейсу нужно использовать команду
root@debian:~# ip addr show eth0Чтобы узнать какие используются DNS-сервера в системе, необходимо выполнить команду nslookup.
gurza@hird:~$ nslookupВ приведенном примере на компьютере hird используются два DNS-сервера, с IP-адресами 193.232.114.64 и 212.192.229.127 соответственно. Связь осуществляется по стандартному 53 порту.
> server
Default server: 193.232.114.64
Address: 193.232.114.64#53
Default server: 212.192.229.127
Address: 212.192.229.127#53
gurza@hird:~$ nslookupа также доменные имена, чтобы получить в ответ IP-адреса.
> 4.2.2.2
Server: 193.232.114.64
Address: 193.232.114.64#53
Non-authoritative answer:
2.2.2.4.in-addr.arpa name = vnsc-bak.sys.gtei.net.
gurza@hird:~$ nslookupВременно перенаправить запрос к другому DNS-серверу можно следующим образом
> gurza.ipib.msu.ru
Server: 193.232.114.64
Address: 193.232.114.64#53
Name: gurza.ipib.msu.ru
Address: 212.192.237.30
gurza@hird:~$ nslookup
> server 4.2.2.2
Default server: 4.2.2.2
Address: 4.2.2.2#53
> lab110.imec.msu.ru
Server: 4.2.2.2
Address: 4.2.2.2#53
Non-authoritative answer:
lab110.imec.msu.ru canonical name = hird-u.imec.msu.ru.
Name: hird-u.imec.msu.ru
Address: 193.232.114.5