Php ile hostname almak için en iyi yolu

4 Cevap

Ben birkaç sunucuları ve bizim geliştiricileri dizüstü bilgisayarlar tüm yüklü bir php uygulama var. Ben sunucunun ana bilgisayar adını veya başka bir benzersiz ve güvenilir sistem tanımlayıcı almak için hızlı ve güvenilir bir yol gerekir. Burada şimdiye kadar düşündüm ne var:

<? $hostname = (!empty($_ENV["HOSTNAME"])) ? $_ENV["HOSTNAME"] : env('HOSTNAME'); ?>

<? $hostname = gethostbyaddr($_SERVER['SERVER_ADDR']); ?>

<? $hostname = exec('hostname'); ?>

Sen ne düşünüyorsun?

4 Cevap

Peki gethostname()?

Düzenleme: Bu ortama bağlı olarak sanırım bir seçenek olmayabilir. PHP 5.3 yeni. php_uname('n') alternatif olarak çalışabilir.

Için PHP >= 5.3.0 use this,

$hostname = gethostname();

Için PHP < 5.3.0 but >= 4.2.0 use this,

$hostname = php_uname('n');

PHP için < 4.2.0 Bu kullanabilirsiniz:

$hostname = getenv('HOSTNAME'); 
if(!$hostname) $hostname = trim(`hostname`); 
if(!$hostname) $hostname = exec('echo $HOSTNAME');
if(!$hostname) $hostname = preg_replace('#^\w+\s+(\w+).*$#', '$1', exec('uname -a')); 

Ayrıca kullanabilirsiniz ...

$hostname = getenv('HTTP_HOST');

php_uname ama istemci veya sunucu hostname istediklerini hostname emin değilim.

artı çerez tabanlı bir yaklaşım kullanmanız gerekir