php取本機ip,php獲取本機ip

本文目錄一覽:

PHP 如何獲取本機 IP 列表

?php

if (isset($_ENV[“HOSTNAME”]))

$MachineName = $_ENV[“HOSTNAME”];

else if (isset($_ENV[“COMPUTERNAME”]))

$MachineName = $_ENV[“COMPUTERNAME”];

else $MachineName = “”;

echo gethostbyname($MachineName);

?

如何使用php獲取本機IP地址

function ip() {

if(getenv(‘HTTP_CLIENT_IP’) strcasecmp(getenv(‘HTTP_CLIENT_IP’), ‘unknown’)) {

$ip = getenv(‘HTTP_CLIENT_IP’);

} elseif(getenv(‘HTTP_X_FORWARDED_FOR’) strcasecmp(getenv(‘HTTP_X_FORWARDED_FOR’), ‘unknown’)) {

$ip = getenv(‘HTTP_X_FORWARDED_FOR’);

} elseif(getenv(‘REMOTE_ADDR’) strcasecmp(getenv(‘REMOTE_ADDR’), ‘unknown’)) {

$ip = getenv(‘REMOTE_ADDR’);

} elseif(isset($_SERVER[‘REMOTE_ADDR’]) $_SERVER[‘REMOTE_ADDR’] strcasecmp($_SERVER[‘REMOTE_ADDR’], ‘unknown’)) {

$ip = $_SERVER[‘REMOTE_ADDR’];

}

return preg_match ( ‘/[\d\.]{7,15}/’, $ip, $matches ) ? $matches [0] : ”;

}

以上函數取自phpcms的獲取ip方法

php中有沒有直接獲取本機IP地址的函數

function _get_client_ip() {

$ip = $_SERVER[‘REMOTE_ADDR’];

if (isset($_SERVER[‘HTTP_CLIENT_IP’])  preg_match(‘/^([0-9]{1,3}\.){3}[0-9]{1,3}$/’, $_SERVER[‘HTTP_CLIENT_IP’])) {

$ip = $_SERVER[‘HTTP_CLIENT_IP’];

} elseif(isset($_SERVER[‘HTTP_X_FORWARDED_FOR’]) AND preg_match_all(‘#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s’, $_SERVER[‘HTTP_X_FORWARDED_FOR’], $matches)) {

foreach ($matches[0] AS $xip) {

if (!preg_match(‘#^(10|172\.16|192\.168)\.#’, $xip)) {

$ip = $xip;

break;

}

}

}

return $ip;

}

這是dz的,拿去,不謝!

php實現獲取區域網所有用戶的電腦IP和主機名、及mac地址完整實例

本文所述php實例可以完成獲取區域網所有用戶的電腦IP和主機名、及mac地址的功能,對於php程序設計人員有一定的參考借鑒價值。完整代碼如下:

?php

$bIp

=

gethostbyname($_ENV[‘COMPUTERNAME’]);

//獲取本機的區域網IP

echo

“本機IP:”,$bIp,”\n”;

echo

“本機主機名:”,gethostbyaddr($bIp),”\n\n\n”;

//gethostbyaddr

函數可以根據區域網IP獲取主機名

//默認網關IP

list($ipd1,$ipd2,$ipd3)

=

explode(‘.’,$bIp);

$mask

=

$ipd1

.

“.”

.

$ipd2

.

“.”

.

$ipd3

;

exec(‘arp

-a’,$aIp);

//獲取區域網中的其他IP

foreach(

$aIp

as

$ipv)

{

if(strpos($ipv,’介面’)

!==

false)

{//一下顯示的IP是否是當前區域網中的

而不是其他的類型

可以在cmd下試一下命令

$bool

=

false;

preg_match(‘/(?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))/’,$ipv,$arr);

if(strcmp($arr[0],$bIp)

==

0)

{

$bool

=

true;

}

}

else

{

if($bool)

{

$str

=

preg_replace(‘/\s+/’,

‘|’,

$ipv);

$sArr

=

explode(‘|’,$str);

if($sArr[1]

==

‘Internet’

||

empty($sArr[1]))

{

continue;

}

//去除默認網關

if(strcmp($mask

.

“.1”,

$sArr[1])

==

0)

{

continue;

}

//去除同網關下255的IP

if(strcmp($mask

.

“.255”,

$sArr[1])

==

0)

{

continue;

}

//去除組播IP

list($cIp)

=

explode(‘.’,

$sArr[1]);

if($cIp

=

224

$cIp

=

239)

{

continue;

}

echo

“IP地址:|”,$sArr[1],”|\n”;

echo

“MAC地址:”,$sArr[2],”\n”;

echo

“主機名:”,gethostbyaddr($sArr[1]),”\n”;

echo

“\n\n”;

}

}

}

該程序是在cli模式下運行的,在瀏覽器上應該也可以

php獲取區域網中的用戶ip功能就完成了,主要用到的是php的exec函數

和window的arp

-a

命令

其中獲取本機IP:gethostbyname($_ENV[‘COMPUTERNAME’])

有別於以往的寫法,感興趣的朋友可以繼續深入研究一下。

獲取主機名函數:gethostbyaddr(IPd)

這個函數功能也很強大。

原創文章,作者:LSNV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/140500.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
LSNV的頭像LSNV
上一篇 2024-10-04 00:23
下一篇 2024-10-04 00:23

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Centos7配置靜態ip

    本文將詳細闡述如何在Centos7系統中配置靜態ip。 一、查看網路介面 在配置靜態ip之前,我們首先需要查看系統中的網路介面,以確定我們需要配置的網卡是哪一個。 ifconfig…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Python檢測IP連通

    Python是一門強大的編程語言,常用於網路開發、數據分析等領域。IP地址是網路通信的基礎,在網路通信中,有時需要檢測IP地址是否連通。下面將從多個方面介紹Python檢測IP連通…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Treck TCP/IP Stack 輸入驗證錯誤漏洞CVE-2020-11901解析

    本文將對Treck TCP/IP Stack 輸入驗證錯誤漏洞CVE-2020-11901進行詳細解析,並提供相關代碼示例。 一、漏洞背景 Treck TCP/IP Stack是一…

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • PHP版本管理工具phpenv詳解

    在PHP項目開發過程中,我們可能需要用到不同版本的PHP環境來試驗不同的功能或避免不同版本的兼容性問題。或者我們需要在同一台伺服器上同時運行多個不同版本的PHP語言。但是每次手動安…

    編程 2025-04-24

發表回復

登錄後才能評論