Forum Moderators: coopster
i have not found a simple answer about that anywhere in the net:
How can my server (Win/Apache/PHP or Linux/Apache/PHP) detect the user (nt-username) that is accessing via http-protocol (web-frontend for example)?
I have already tried javascript, but i am not member of trusted sites in our company, so the object isn`t executed.
Thanks in advance...
Best regards... tention
$OSList = array
(
// Match user agent string with operating systems
'Windows 3.11' => 'Win16',
'Windows 95' => '(Windows 95)¦(Win95)¦(Windows_95)',
'Windows 98' => '(Windows 98)¦(Win98)',
'Windows 2000' => '(Windows NT 5.0)¦(Windows 2000)',
'Windows XP' => '(Windows NT 5.1)¦(Windows XP)',
'Windows Server 2003' => '(Windows NT 5.2)',
'Windows Vista' => '(Windows NT 6.0)',
'Windows 7' => '(Windows NT 7.0)',
'Windows NT 4.0' => '(Windows NT 4.0)¦(WinNT4.0)¦(WinNT)¦(Windows NT)',
'Windows ME' => 'Windows ME',
'Open BSD' => 'OpenBSD',
'Sun OS' => 'SunOS',
'Linux' => '(Linux)¦(X11)',
'Mac OS' => '(Mac_PowerPC)¦(Macintosh)',
'QNX' => 'QNX',
'BeOS' => 'BeOS',
'OS/2' => 'OS/2',
'Search Bot'=>'(nuhk)¦(Googlebot)¦(Yammybot)¦(Openbot)¦(Slurp)¦(MSNBot)¦(Ask Jeeves/Teoma)¦(ia_archiver)'
);
// Loop through the array of user agents and matching operating systemsforeach($OSList as $CurrOS=>$Match) {
// Find a match
if (eregi($Match, $_SERVER['HTTP_USER_AGENT'])) {
// We found the correct match
break;
}
}
// You are using Windows Vista
echo "You are using ".$CurrOS;
I was able to detect the NT username by looking at the $_SERVER['Auth_User'] global in PHP.
However, I had to set-up the IIS server to achieve this.
The php application had to detect the NT username, from 1,000's of users on a large intranet. I set-up the PHP in a virtual directory under IIS, and then changed the Authentication methods on this directory from anonymous (the default) to Basic authentication and entered the NT domain name in the box provided.
Now every user that visits that virtual directory exposes their NT username in the $_SERVER['Auth_User'] global in PHP.
Hope this helps