16
ИюнНовая тема + как получить список IP и MAC адресов сервера на PHP
Filed Under (Всякое, Новости) by lordtime on 16-06-2008
Та как темы надо менять, (дабы глаз не мусолили) почаще, сегодня залил свеженькую, немножко подправленную тему от http://www.skinpress.com/.
Что бы не првращать пост в пустую болтовно напишу сразу полезную функцию на PHP – тривиально, но кому надо, тому покажется интересной.
Итак – как определить IP адреса сервера на котором хостится скрипт ? ну нужно нам (защита, и т п) , можно конечно проверить _SERVER["SERVER_ADDR"] , – годится, ну а если у сервера много адресов ? (у этого напрмер шесть). А если скрипт работает из консоли ? А вот если и MAC адреса понадобились ?
Вот функция
function get_host_ips()
{
$ifs = array(‘/sbin/ifconfig’, ‘/usr/sbin/ifconfig’, ‘/usr/local/sbin/ifconfig’,
‘/bin/ifconfig’, ‘/usr/bin/ifconfig’, ‘/usr/local/bin/ifconfig’ );$ip = array();
$mac = array();
$ifc = $ifs[0];if( preg_match(‘!Windows!i’, getenv(‘OS’)) ){
$ifc = ‘ipconfig /all’;
}else{
foreach($ifs as $if){
if(@file_exists($if)){ $ifc = $if; break; }
}
}unset($o);
$res = @exec($ifc, $o, $rv);
if( count($o) ){
foreach($o as $ol){
if(preg_match(‘!(inet |inet addr:)(\d+)\.(\d+)\.(\d+)\.(\d+) .+?mask!i’, $ol, $i)){
$ip[] = «{$i[2]}.{$i[3]}.{$i[4]}.{$i[5]}»;
}
elseif(preg_match(‘!IPv4 Address.+?:\s+(\d+)\.(\d+)\.(\d+)\.(\d+)!i’, $ol, $i)){
$ip[] = «{$i[1]}.{$i[2]}.{$i[3]}.{$i[4]}»;
}
elseif(preg_match(‘! HWaddr ([0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2})!i’, $ol, $i)){
$mac[] = strtolower($i[1]);
}
elseif(preg_match(‘!ether ([0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2})!i’, $ol, $i)){
$mac[] = strtolower($i[1]);
}
elseif(preg_match(‘!Physical Address.+?:\s+([0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2})!i’, $ol, $i)){
$mac2= strtolower(str_replace(‘-’, ‘:’, $i[1]));
if($mac2 != ‘00:00:00:00:00:00′) {
$mac[] = $mac2;
}
}}
}return array(‘ip’ => $ip, ‘mac’ => $mac);
}
Работает как под виндой, так и под большинством Unix’ов. Тестировалось на Линуксах и Фрях. Результатом выполнения будет массив с IP адресами и mac адресами. Как поступить с массивом – решайте сами.
Скажу сразу, что я в своих скриптах, дял защиты, использую Ioncube Pro. Так вот, эта очень даже недешовая софтина при всей своей обещаной защите по IP, банально смотрит SERVER_ADDR – ну не подло ли ? Cоответственно консольные скрипты , защищенные IonCUBE, просто не работают вообще.
Если же мы как следуем покопаемся с возможностью генерировать лицензии, то все станет на свои места если мы защиту по МАКам и IP всунем в сам скрипт, а данные по лицензии возьмем из самого файла лицензии. Таким образом и сэкономим на лицензии Cerberos . (IonCube у меня лицензионный, второй софт который я купил – первый был Хрумер
)
Думаю идея понтяна. если нет – пишите – разъясню.

Во блин, вы просто злодей, зачем же такие вещи палить.
Могут по злому заюзать. )
это как по злому ?
есть еще пару вариантов
более жестких
Здравствуйте, Владимир!
Подскажите, пожалуйста, есть ли скрипт, с помощью которого можно считать с компьютера MAC адрес и вставить его в тело письма?
Заранее благодарю за ответ.
С уважением, Алексей Никоолаевич.
ага, есть – он в этом посте и упоминается.
Не на всех хостингах есть поддержка такой команды в «
не юзабельные кавычки ставите ‘ и «
похоже лажовый скрипт не юзайте.