[PHP-users 35812] リファラ、PC名、ユーザー名が取得出来ません。

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[PHP-users 35812] リファラ、PC名、ユーザー名が取得出来ません。

daikog2014
 daikog2014と申します。
PHP初心者です。

クライアントPCの情報を取得出来ずに悩んでおります。

IPアドレス、Webサーバのホスト名、ブラウザ情報は取得出来るのですが、
リファラ、PC名、ユーザー名は取得出来ません。

PC名は、nslookupコマンドでは、取得出来るのですが、gethostbyaddrでは
取得出来ません。

何がいけないのでしょうか?

***環境***************
サーバ
OS Windows2008r2
Web IIS7.5
PHP 5.5.11

クライアントPC
OS Windows7Pro 64bit
ブラウザ IE11

***Sample20140610_01.php*****************
<?php
// エラー出力する場合1 しない場合0
ini_set( 'display_errors', 1 );
echo date('Y/m/d H:i:s') . mb_convert_encoding("  この時間に処理しました。<br>\r\n","UTF-8",
"SJIS");
$IP = mb_convert_encoding(" IP: ","UTF-8", "SJIS").$_SERVER['REMOTE_ADDR'];
$ip1 = $_SERVER['REMOTE_ADDR'];
echo $IP;
echo "<br>\r\n";
$host = mb_convert_encoding(" IP→PC名: ","UTF-8", "SJIS").gethostbyaddr($IP);
echo $host;
echo "<br>\r\n";
echo mb_convert_encoding(" ホスト名: ","UTF-8", "SJIS").$_SERVER['HTTP_HOST'];
echo "<br>\r\n";
echo mb_convert_encoding("リファラ:","UTF-8", "SJIS"). $_SERVER["HTTP_REFERER"];
echo "<br>\r\n";
echo mb_convert_encoding("ブラウザ:","UTF-8", "SJIS"). $_SERVER["HTTP_USER_AGENT"];
echo "<br>\r\n";
echo mb_convert_encoding("PHP User:","UTF-8", "SJIS").
$_SERVER['PHP_AUTH_USER'];
echo "<br>\r\n";
$command = mb_convert_encoding("nslookup ".$ip1,"UTF-8", "SJIS");
echo $command;
echo "<br>\r\n";
$rt = mb_convert_encoding(shell_exec(escapeshellcmd($command)),"UTF-8", "SJIS");
 echo $rt;

?>
***Sample20140610_01.php*****************

IE Output画面
**********************************
2014/06/10 13:44:48  この時間に処理しました。
IP: 192.168.1.100
Warning: gethostbyaddr(): Address is not a valid IPv4 or IPv6 address
in D:\web\php\Sample20140610_01.php on line 14
IP→PC名:
ホスト名: web
Notice: Undefined index: HTTP_REFERER in
D:\web\php\Sample20140610_01.php on line 22
リファラ:
ブラウザ:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64;
Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR
3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
Notice: Undefined index: PHP_AUTH_USER in
D:\web\php\Sample20140610_01.php on line 28
PHP User:
nslookup 192.168.1.100
サーバー: sv.domain.local Address: 192.168.1.* 名前: PC_name.domain.local
Address: 192.168.1.100
**********************************


daikog2014
_______________________________________________
PHP-users mailing list  [hidden email]
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[PHP-users 35813] Re: リファラ、PC名、ユーザー名が取得出来ません。

nakaji
nakajiともうします

(2014/06/10 14:39), daikog2014 wrote:
>   daikog2014と申します。
> PHP初心者です。
>
> クライアントPCの情報を取得出来ずに悩んでおります。
>
> IPアドレス、Webサーバのホスト名、ブラウザ情報は取得出来るのですが、
> リファラ、PC名、ユーザー名は取得出来ません。

「PC名、ユーザー名」というのはクライアントPCのコンピューター名とクライア
ントPCでログインされているユーザ名ということでしょうか。それらの情報を
webサーバーに送信するWebブラウザはおそらく存在しないため、直接取得は出来
ないと思います。

$_SERVER['PHP_AUTH_USER']はPHPでBASIC認証を行ったりする時に送信される
ユーザー名なので、期待する「ユーザー名」とは違う気がします。

> PC名は、nslookupコマンドでは、取得出来るのですが、gethostbyaddrでは
> 取得出来ません。

gethostbyaddrに突っ込んでる$IPの中身が「IP: 192.168.1.100」という文字
列になっているからだとおもいます。$ip1とか、そのま
ま$_SERVER['REMOTE_ADDR']とかにすればうまくいったりしないでしょうか。


_______________________________________________
PHP-users mailing list  [hidden email]
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[PHP-users 35814] Re: リファラ、PC名、ユーザー名が取得出来ません。

nakaji
In reply to this post by daikog2014
nakajiです。書き忘れていました。

> IPアドレス、Webサーバのホスト名、ブラウザ情報は取得出来るのですが、
> リファラ、PC名、ユーザー名は取得出来ません。

リファラはどこかのリンクなどからこのページにやってきた時につくものなの
で、このページに直接アクセスした場合は空欄になるはずです。


_______________________________________________
PHP-users mailing list  [hidden email]
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[PHP-users 35815] Re: リファラ、PC名、ユーザー名が取得出来ません。

daikog2014
いつも、お世話になっております。
daikog2014です。

>gethostbyaddrに突っ込んでる$IPの中身が「IP: 192.168.1.100」という文字
>列になっているからだとおもいます。$ip1とか、そのま
>ま$_SERVER['REMOTE_ADDR']とかにすればうまくいったりしないでしょうか。

ご指摘の通りでした。nslookupで取得出来なかった時に同じ事をしたのに気づきませんでした。

>リファラはどこかのリンクなどからこのページにやってきた時につくものなの
>で、このページに直接アクセスした場合は空欄になるはずです。
htmlファイルにLinkを貼ってSample20140610_01.phpへ行った所、htmlファイルのURLが出て来ました。

>「PC名、ユーザー名」というのはクライアントPCのコンピューター名とクライア
>ントPCでログインされているユーザ名ということでしょうか。それらの情報を
>webサーバーに送信するWebブラウザはおそらく存在しないため、直接取得は出来
>ないと思います。
やはり直接取得は出来ないのですね。
取得出来そうなコマンドがあったので「もしや」と、思いましたが、やはり無理ですか。
今の所、ローカル環境で使用するのでIPアドレスからの逆引きでPC名を取得して対応します。

有難う御座いました。


2014年6月10日 16:31 nakaji <[hidden email]>:

> nakajiです。書き忘れていました。
>
>> IPアドレス、Webサーバのホスト名、ブラウザ情報は取得出来るのですが、
>> リファラ、PC名、ユーザー名は取得出来ません。
>
> リファラはどこかのリンクなどからこのページにやってきた時につくものなの
> で、このページに直接アクセスした場合は空欄になるはずです。
>
>
> _______________________________________________
> PHP-users mailing list  [hidden email]
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
_______________________________________________
PHP-users mailing list  [hidden email]
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3
Loading...