国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - PHP教程 - PHP獲取windows登錄用戶名的方法

PHP獲取windows登錄用戶名的方法

2020-07-11 15:28PHP教程網(wǎng) PHP教程

這篇文章主要介紹了PHP獲取windows登錄用戶名的方法,通過(guò)NTLM來(lái)實(shí)現(xiàn),NTLM 是 Windows NT 早期版本的標(biāo)準(zhǔn)安全協(xié)議,需要的朋友可以參考下

前幾天在問答區(qū)提了一下這個(gè)問題,所有回答問題的朋友都說(shuō)不可能通過(guò)PHP實(shí)現(xiàn),碰巧我的實(shí)習(xí)負(fù)責(zé)人幫我找到了一個(gè)方法,貌似是通過(guò)NTLM來(lái)實(shí)現(xiàn)的,我是新手,對(duì)具體原理也知之不詳,只是自己測(cè)試了一下,很好用.
所以趕快拿出來(lái)與大家分享.這是一個(gè)法國(guó)人寫的,所以編碼中的注釋都是法語(yǔ),如果有朋友很想了解某行的注釋含義,請(qǐng)回帖說(shuō)明,我可以試著翻譯一下.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
/***********************************************************************
************************************************************************
*
* PHP NTLM GET LOGIN
* Version 0.2.1                 
* Copyright (c) 2004 Nicolas GOLLET ( Nicolas (dot) gollet (at) secusquad (dot) com )
* Copyright (c) 2004 Flextronics Saint-Etienne
*
* This program is free software. You can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License.   
*
***********************************************************************/
session_start();
$headers = apache_request_headers(); // 獲取用戶頭
if (@$_SERVER['HTTP_VIA'] != NULL){ // 確認(rèn)是否使用了代理(proxy),因?yàn)閚tlm驗(yàn)證不能穿過(guò)代理.
echo "Proxy bypass!";
}
elseif($headers['Authorization'] == NULL){  //si l'entete autorisation est inexistante如果許可頭不存在
 header( "HTTP/1.0 401 Unauthorized" );  //envoi au client le mode d'identification
 header( "WWW-Authenticate: NTLM" );  //dans notre cas le NTLM
 exit;    //on quitte
}
if(isset($headers['Authorization']))   //dans le cas d'une authorisation (identification)
{
 if(substr($headers['Authorization'],0,5) == 'NTLM '){ // 確認(rèn)client是否在ntlm下
 
  $chaine=$headers['Authorization'];  
  $chaine=substr($chaine, 5);  // 獲取 base64-encoded type1 信息
  $chained64=base64_decode($chaine); // 解碼 base64 到 $chained64
  
  if(ord($chained64{8}) == 1){  
  //   |_ byte signifiant l'etape du processus d'identification (etape 3)
 
  // verification du drapeau NTLM "0xb2" ?l'offset 13 dans le message type-1-message (comp ie 5.5+) :
  if (ord($chained64[13]) != 178){
   echo "NTLM Flag error!";
   exit;
  }
 
  $retAuth = "NTLMSSP".chr(000).chr(002).chr(000).chr(000).chr(000).chr(000).chr(000).chr(000);
  $retAuth .= chr(000).chr(040).chr(000).chr(000).chr(000).chr(001).chr(130).chr(000).chr(000);
  $retAuth .= chr(000).chr(002).chr(002).chr(002).chr(000).chr(000).chr(000).chr(000).chr(000);
  $retAuth .= chr(000).chr(000).chr(000).chr(000).chr(000).chr(000).chr(000);
  
  $retAuth64 =base64_encode($retAuth); // encode en base64
  $retAuth64 = trim($retAuth64);  // enleve les espaces de debut et de fin
  header( "HTTP/1.0 401 Unauthorized" );  // envoi le nouveau header
  header( "WWW-Authenticate: NTLM $retAuth64" ); // avec l'identification suppl閙entaire
  exit;
  
  }
  
  else if(ord($chained64{8}) == 3){
  //     |_ byte signifiant l'etape du processus d'identification (etape 5)
 
  // on recupere le domaine
  $lenght_domain = (ord($chained64[31])*256 + ord($chained64[30])); // longueur du domain
  $offset_domain = (ord($chained64[33])*256 + ord($chained64[32])); // position du domain.
  $domain = str_replace("\0","",substr($chained64, $offset_domain, $lenght_domain)); // decoupage du du domain
  
  //le login
  $lenght_login = (ord($chained64[39])*256 + ord($chained64[38])); // longueur du login.
  $offset_login = (ord($chained64[41])*256 + ord($chained64[40])); // position du login.
  $login = str_replace("\0","",substr($chained64, $offset_login, $lenght_login)); // decoupage du login
  
  if ( $login != NULL){
   // stockage des donn閑s dans des variable de session
   $_SESSION['Login']=$login;
   header("Location: newpage.php");
   exit;
  }
  else{
   echo "NT Login empty!";
  }
   
 
  }
 }
}
?>

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩成人av电影 | 午夜看片| 日韩五月 | 免费看黄色一级 | 久久99国产精一区二区三区 | 欧美1级片| 国产精品久久久久久亚洲调教 | 久久综合九色综合网站 | 色www精品视频在线观看 | 精品久久一区二区三区 | 中文字幕一区二区三区日韩精品 | 成人高清在线 | 国产黄色av| 久久99精品久久久久久国产越南 | 国内精品视频在线观看 | 红桃成人少妇网站 | 国产日韩免费视频 | 亚洲国产精品久久久久秋霞不卡 | 青青操av在线 | 久久精品这里热有精品 | 在线观看国产一区二区 | 亚洲天堂免费在线 | 91午夜理伦私人影院 | 不卡在线一区 | 欧美色综合天天久久综合精品 | 一级录像免费录像在线观看 | 日韩在线视屏 | 国产馆 | 日日干天天干 | 精品在线一区二区 | 一本久久综合亚洲鲁鲁五月天 | 欧州一区二区三区 | 亚洲国产中文字幕 | 日韩电影免费在线观看 | 91免费在线视频 | 欧美另类综合 | 欧美日韩精品在线 | 懂色av一区二区三区 | 国产在线视频网 | 日韩成人欧美 | 自拍亚洲 |