ホームページ バックエンド開発 PHPチュートリアル PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码_PHP

PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码_PHP

Jun 01, 2016 pm 12:15 PM
mac

复制代码 代码如下:
function ce_getmac()
{
if(PHP_OS == 'WINNT')
{
$return_array = array();
$temp_array = array();
$mac_addr = "";
@exec("arp -a",$return_array);
foreach($return_array as $value)
{
if(strpos($value,$_SERVER["HTTP_CLIENT_IP"]) !== false &&
preg_match("/(:?[0-9a-f]{2}[:-]){5}[0-9a-f]{2}/i",$value,$temp_array))
{
$mac_addr = $temp_array[0];
break;
}
}
return $mac_addr ? strtoupper($mac_addr) : '';
}
else if(PHP_OS == 'Linux')
{
return true;
}
}

函数已经修改过了,到LINUX上发现不能使用EXEC函数,也就是获取不到MAC地址了。经过沟通,该项目必须部署在LINUX服务器下,笔者经过苦思冥想了半天终于找到了一个解决方案,不用执行EXEC也可以获取到内网用户的MAC地址。
在内网服务器中,有一台192.168.1.151的服务器,服务器上一个API,访问这个API,就获取用户MAC,JOSN的方式输出用户账号信息,因为该服务器可以获取MAC,就可以稍加利用了。
使用CURL伪造来源IP方式(IP不是LINUX服务器的IP,是客户端访问的IP地址),CURL到151服务器,服务器得到相应,根据用户IP地址 和ARP -A 参数的正则方式就可以得到客户端的MAC地址,程序运行在151,而151是WINDOWS 2008服务器。但是要注意的是不能使用REMOTE_ADDR,必须使用HTTP_CLIENT_IP。 原因是HTTP_CLIENT_IP可以使用CURL伪造,这样就可以使用LINUX获取用户IP,然后传送给151处理。
疑问:根据用户IP获取MAC地址,那用户换一个IP了怎么办呢?使用CMD下 ARP -A分析,即使用户跟换IP,但是对应该用户的这台计算机的MAC地址默认是不会更换的。

下面是摘抄网友的关于获取IP的文章:
dz的代码判断IP那块太让人头疼了,日,REMOTE_ADDR,HTTP_CLIENT_IP,HTTP_X_FORWARDED_FOR三个东西在手册上太不详细了,基本上就等于没有。
网上gg了一下,找到一点,另外,有一个思路太巧了,用JS取IP以后POST到服务器,Y的用代理骗服务器?有种上网先把Js给关了啊!!哦哈哈,以后有机会用ajax试一下,也省得用这三个变量if得死去活来了。

$_SERVER['...']; // for php
一、没有使用代理服务器的情况:
REMOTE_ADDR = 您的 IP
HTTP_VIA = 没数值或不显示
HTTP_X_FORWARDED_FOR = 没数值或不显示
二、使用透明代理服务器的情况:Transparent Proxies
REMOTE_ADDR = 最后一个代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 您的真实 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。
这类代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。
三、使用普通匿名代理服务器的情况:Anonymous Proxies
REMOTE_ADDR = 最后一个代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 代理服务器 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。
隐藏了您的真实IP,但是向访问对象透露了您是使用代理服务器访问他们的。
四、使用欺骗性代理服务器的情况:Distorting Proxies
REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 随机的 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。
告诉了访问对象您使用了代理服务器,但编造了一个虚假的随机IP代替您的真实IP欺骗它。
五、使用高匿名代理服务器的情况:High Anonymity Proxies (Elite proxies)
REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 没数值或不显示
HTTP_X_FORWARDED_FOR = 没数值或不显示 ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。
完全用代理服务器的信息替代了您的所有信息,就象您就是完全使用那台代理服务器直接访问对象。

REMOTE_ADDR 是你的客户端跟你的服务器“握手”时候的IP。如果使用了“匿名代理”,REMOTE_ADDR将显示代理服务器的IP。
HTTP_CLIENT_IP 是代理服务器发送的HTTP头。如果是“超级匿名代理”,则返回none值。同样,REMOTE_ADDR也会被替换为这个代理服务器的IP。
$_SERVER['REMOTE_ADDR']; //访问端(有可能是用户,有可能是代理的)IP
$_SERVER['HTTP_CLIENT_IP']; //代理端的(有可能存在,可伪造)
$_SERVER['HTTP_X_FORWARDED_FOR']; //用户是在哪个IP使用的代理(有可能存在,也可以伪造)
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Macのキーボードでパスワードを入力しても反応がありませんか? Macのキーボードでパスワードを入力しても反応がありませんか? Feb 20, 2024 pm 01:33 PM

はじめに: このウェブサイトでは、Mac のキーボードがパスワードを入力しても反応しないことに関する関連コンテンツを紹介しますので、お役に立てれば幸いです。 Apple Mac システムでパスワードを入力できない問題を解決するにはどうすればよいですか? このキーボードを他のコンピュータに接続して、正常に動作するかどうかを確認することもできます。別のコンピューターでも同じ問題が発生する場合は、キーボード自体に問題がある可能性が高くなります。キーボードを交換するか修理することを検討してください。 Mac コンピュータで初めて Alipay にログインすると、ログイン インターフェイスが表示され、パスワードを入力できません。パスワード入力フィールドには「コントロールをインストールするにはここをクリックしてください」と表示されるため、Alipay ログインにはセキュリティ コントロールのインストールが必要です。セキュリティ制御により、入力した情報 (金額、パスワードなど) を暗号化して保護し、アカウントのセキュリティを向上させることができます。ネクタイ

Mac コンピュータ名、ホスト名、Bonjour 名を簡単にカスタマイズするための 3 つのヒント Mac コンピュータ名、ホスト名、Bonjour 名を簡単にカスタマイズするための 3 つのヒント Mar 06, 2024 pm 12:20 PM

多くの Mac ユーザーはデバイスのデフォルト名をそのまま使用する傾向があり、それを変更することを決して考えないかもしれません。多くの人は、「Johnny's MacBook Air」または単に「iMac」など、初期設定の名前をそのまま使用することを選択します。 Mac の名前を変更する方法を学ぶことは、特に複数のデバイスを持っている場合に、デバイスをすばやく区別して管理するのに役立つため、非常に便利なスキルです。次に、macOS システムでコンピューター名、ホスト名、Bonjour 名 (ローカルホスト名) を変更する方法を段階的に説明します。 Mac 名を変更する必要があるのはなぜですか? Mac の名前を変更すると、あなたの個性が表れるだけでなく、ユーザー エクスペリエンスの向上にも役立ちます。 Mac をカスタマイズする: デフォルトの名前は好みに合わない場合がありますので、お好みの名前に変更してください。

Mac インストーラーのパスワードをお忘れですか? Mac インストーラーのパスワードをお忘れですか? Feb 20, 2024 pm 01:00 PM

はじめに: このウェブサイトでは、Mac インストール プログラムのパスワードを忘れた場合の関連コンテンツをご紹介しますので、お役に立てれば幸いです。 Apple コンピュータ インストール ソフトウェアのパスワードを忘れた場合の対処方法 まず、電話の設定で iCloud を見つけ、クリックして開きます。次に、アカウント番号とパスワードを入力します。ログインボタンの下に、IDまたはパスワードを忘れた場合を促す小さな文字が並んでいますので、これをクリックしてください。通常、ログインインターフェイスで間違ったパスワードを複数回入力すると、MacBook Pro はバインドされた Apple ID を使用してパスワードをリセットするように求めるメッセージを表示します。システムが要求する手順に従うだけで、パスワードのリセットを完了できます。 3. まず Mac をシャットダウンしてから再起動し、電源ボタンを押しながらすぐにキーボードの com を押し続けます。

Macにインストールするpkgファイル? Macにインストールするpkgファイル? Feb 20, 2024 pm 03:21 PM

はじめに: 今日、このサイトでは、Mac への pkg ファイルのインストールに関する関連コンテンツを共有します。現在直面している問題を解決できる場合は、このサイトをフォローして今すぐ開始することを忘れないでください。以前のバージョンの macos pkg をインストールしてオペレーティング システムをアップグレードすることはできません。ラップトップが古いオペレーティング システム バージョンを使用している場合は、最新のオペレーティング システム バージョンにアップグレードすることをお勧めします。古いバージョンでは最新の macOS システムのインストールがサポートされていない可能性があるためです。ディスクユーティリティで「消​​去」を選択し、フォーマットでMacos拡張子を選択し、暗号化オプションをチェックせず、apfsフォーマットを選択せず​​、最後に「消去」ボタンをクリックすると、消去を完了できない問題が解決されます。 macOSのインストール。アプリケーションのアイコンを「App」で始まるファイルにドラッグします。

Apple Mac で入力するときにページをめくるにはどうすればよいですか? Apple Mac で入力するときにページをめくるにはどうすればよいですか? Feb 20, 2024 pm 12:54 PM

はじめに: 今日、このサイトでは、Apple Mac で入力するときにページをめくる方法に関する関連コンテンツを共有します。現在直面している問題が解決できる場合は、このサイトをフォローして今すぐ開始することを忘れないでください。 Apple MacBook ラップトップでタッチパッドを使用するためのヒント Apple コンピュータで 2 本指スライドを設定する手順は次のとおりです: コンピュータのデスクトップで [設定] アイコンを見つけてクリックします。設定インターフェースで「タッチパッド」を選択し、「スクロールしてズーム」をクリックします。スクロールズームオプションの「スクロール方向:ナチュラル」にチェックを入れれば設定完了です。 Apple コンピュータで 2 本指のスワイプ方法を設定するのは簡単です。まず、コンピュータの電源を入れ、画面上部の「設定」アイコンをクリックします。設定インターフェイスで、「タッチパッド」オプションを選択します。次に、「スクロールズーム」をクリックし、「スクロール方向」がチェックされていることを確認します。

音声メッセージを自動的にテキストに変換するように WeChat Mac を設定する方法 - 音声からテキストへの変換を設定する方法 音声メッセージを自動的にテキストに変換するように WeChat Mac を設定する方法 - 音声からテキストへの変換を設定する方法 Mar 19, 2024 am 08:28 AM

最近、一部の友人が、音声メッセージを自動的にテキストに変換するための WeChat Mac の設定方法について編集者に相談しました。以下は、音声メッセージを自動的にテキストに変換するための WeChat Mac の設定方法です。必要な友人は来て、詳細を学ぶことができます。ステップ 1: まず、Mac バージョンの WeChat を開きます。図に示すように: ステップ 2: 次に、「設定」をクリックします。図に示すように: ステップ 3: 次に、「一般」をクリックします。図に示すように: ステップ 4: 次に、「チャットの音声メッセージを自動的にテキストに変換する」オプションをチェックします。図に示すように: ステップ 5: 最後に、ウィンドウを閉じます。図に示すように:

Macはファイルをハードドライブにカットできますか? Macはファイルをハードドライブにカットできますか? Feb 20, 2024 pm 01:00 PM

はじめに: この記事では、Mac でファイルをハードディスクにカットする関連コンテンツを紹介します。 Mac コンピュータで写真をモバイル ハード ドライブにエクスポートする方法 Finder または写真アプリケーションを使用して、写真をモバイル ハード ドライブにエクスポートできます。 Finder を使用して写真をエクスポートする場合は、まずモバイル ハード ドライブが Mac に接続されており、Mac で正常に認識されていることを確認してください。 Mac からハード ドライブに写真を転送する手順は簡単です。まず、モバイル ハード ドライブをコンピュータに接続し、[ランチャー] アイコンを開きます。次に、ポップアップウィンドウで[写真]アイコンを見つけてクリックします。開いた[写真]ウィンドウで[Shift]キーを押したままにします

Mac で HEIC 写真を JPG に変換する 3 つの方法 Mac で HEIC 写真を JPG に変換する 3 つの方法 Mar 15, 2024 pm 08:43 PM

デフォルトでは、iPhone はカメラから HEIC 形式で写真を取得します。 HEIC は High Efficiency Image Container の略で、PNG や JPG ファイルよりも多くのピクセル データを保持できるため、他の形式に比べて iPhone ストレージ上の占有スペースが大幅に少なくなります。これらのファイルは iPhone で最もよく機能しますが、Apple 以外のデバイスと共有すると画像がぼやけたり粗くなったりすることが多いため、インターネットではあまり受け入れられていません。 HEIC 画像が他のデバイスと互換性があることを確認するには、画像を JPG 形式に変換する必要がある場合があります。この記事では、MacでHEIC画像をJPGに変換する方法を紹介します。 MacでHEIC写真をJPGに変換する方法【3つの方法】

See all articles