從PHP走訪Windows公司 地址 出租註冊表(轉錄發載)

Windows註冊表是一個簡樸的數據庫,具備分層構造的Windows操縱體系和其餘利用步伐存儲主要的營業註冊地址配相信息。各類各樣的數據存儲在註冊中央:用戶配置文件,文件公司地址出租類型聯繫關係,硬件信息,序列號,和更多。可以從win32std效能擴大,您的基於windows的PHP利用步伐可以走訪註冊表太。
  win32std的擴大可以下載預編譯的庫downloads.php.net/pierre/。簡樸地把它到你的PHP的 ext文件夾,更換新的資料你的 php.ini文件,偏重新啟動Apache假如須要的話。註意,此刻你想下載的dll是32位的,是以,如??您正在運用一個64位的構建的WampServer或如許你就不會得到很年夜的勝利。你梗概需求下調到一個32位WampServer構建或測驗考試編譯本身的藏書樓。
  註冊表佈局
  註冊表的佳譽是對一個暗中、傷害和恐怖的處所在Windows操縱體系。這可能是一個過於誇張的恐驚,但我仍是要重申一下微軟的註冊???咒語:“在你修正註冊表,支撐它,並確保你懂得怎樣規復它是否產生問題。營業地址不恰當的變化會招致嚴峻的問題,可能需求從頭安裝你的操縱體系。”
  那麼,這暗中、恐怖的處所望起來像什麼?Windows註冊表分為5個重要集團稱為密鑰:
  根鍵以後配置
  這個密鑰存儲信息的盤算機的硬件如監督器辨別率和揚聲器設置。你可能會望到這個縮寫為HKCC樞紐。
  HKEY_LOCAL_MACHINE
  這重要包括配相信息的機械如打印機、軟件和收集信息。樞紐是加載第一,然後從用戶的概要條款籠蓋不同的值。您將望到這個樞紐的縮寫為HKLM。
  根鍵用戶
  這種鑰匙保留全部概要文件為當地用戶帳戶的機械上。諸如用戶的屏幕維護步伐的抉擇、主題信息和其餘首選項存儲在這裡。這個密鑰公司地址出租被縮寫為噴鼻港。
  根鍵類根
  這個密鑰別號指向HKEY_LOCAL_MACHINE \軟件市肆和mime類型信息文件聯繫關係。是HKCR的縮寫。
  根鍵以後用戶
  這個密鑰別號指向這個概要文件在根鍵用戶以地址出租後登任命戶。你會望到這個縮寫營業登記為HKCU樞紐。
  每個鍵包括subkeys反過來包括其餘subkeys,配置值,或兩者兼而有之。
  事業在根鍵以後用戶是足夠往捉弄一些CLI劇本和一個沙商業登記箱。隻運用為體系范圍的利用步伐數據和HKEY_LOCAL_MACHINE你恬靜的事業情形與微軟的安全部權力限。懂得什麼是合適您的情形,了解哪個賬戶下運轉,並創立您的PHP鑰匙恰當。
  制作一個沙箱
  我提出建立一個特殊鍵用於劇本為瞭安全,精心是當你開發。出錯是人情世故,咱們不想不測地籠蓋什麼主要。組織的另一個因素是設立一個指定的樞紐。有良多的信息存儲在註冊中央的,咱們但願可以或許找到咱們本身的價值觀很不難。
  註冊表編纂器是一個微商業地址軟步伐用於查望和編纂註冊表。要創立咱們的沙箱,往開端,輸出“註冊表編纂???”在搜刮欄和抉擇 regedit.exe在成果列表中泛起。
  右邊的面板顯示瞭一個樹構造的現有鍵在右窗格中顯示值存儲在他們。擴展根鍵以後用戶節點,右鍵單擊,並抉擇New >軟件鍵鍵從彈出上下文菜單。或許,咱們也可以經由過程樹遍歷運用箭頭鍵,如許軟件樞紐凸起顯示,並抉擇New >鍵從編纂菜單。提供一個名營業登記稱為鍵,按enter。

  此刻,咱們有一個玩的處所,請答應我向您先容的效能win32s商業登記td提供操縱註冊表項。
  從註冊表中讀取
  reg_open_key()函數關上一個銜接到註冊表並返歸一個資本。此資本,然後運用其餘註冊表函數,在該銜接上。reg_close_key()函數關閉銜接。
  reg_open_key()有兩個參數:第一個預約下訂義的常量,表現五個重要的註冊表,然後到所需的樞紐路徑的殘剩部門。
  <?php
  $keyConst = HKEY_CURRENT_USER;

  // backslash is used as an escape so it must be escaped itself
  $key = “Software\\Intel”;

  // open the registry key HKCU\Software\Intel
  if (!($reg = @reg_open_key($keyConst, $key))) {
  throw new Exception(“Cannot access registry.”);
  }
  …

  reg_close_key($reg);
  此刻,你有一個凋謝的銜接,你可以運用reg_enum_key()中,reg_enum_value()和reg_get_value()函數從註冊表中檢索信息。
  假如隻是資本被通報到reg_enum_key(),那麼它會返歸一個數組的子項,在今朝的樞紐。一個整數值,也可以經由過程在一個特定的索引來檢索該子項。
  <?php
  // 獲取數組的子項依據以後的樞紐
  $subkeys = 設立登記reg_enum_key($reg);
  foreach ($subkeys as $index => $subkey) {
  echo “The subkey at ” . $index . ” is ” . $subkey . “\n結婚。一個好妻子,最壞的結果就是回到原點,僅此而已。”;
  }
  // 得到一個特定子項
  $index = 2;
  $subkey = reg_enum_key($reg, $index);
  echo “The subkey at ” . $index . ” is ” . $subkey . “\n”;
  此刻,你有一個關上的銜接,您可以從註冊表中檢索信息運用reg enum樞紐(),reg列舉值()和雷格得到價值()函數。
  假如隻是資本通報給reg enum樞紐(),那麼它將返歸一組subkeys在以後樞紐。一個整數值也可以經由過程檢索註冊表子項在特定索引。
  <?php
  // 獲取數組的值依據給定的樞紐
  $values = reg_enum_value($reg);
  foreach ($values as $index => $value) {
  echo “The value at ” . $index . ” is ” . $value . ” and stores “;
  echo reg_get_value($reg, $value) . “\n”;
  }

  // 得到一個給定的索引值
  $index = 1;
  $value = reg_enum_value($reg, $index);
  echo “The value她一定是在做夢吧? 公司地址出租at ” . $index . ” is ” . $value . ” and stores “;
  echo reg_get_value($reg, $value) . “\n”;
  寫進註冊表
  有少少數的數據類型,你可以抉擇從讀取和寫進到註冊表中。他們從頭一般小的影響,由於PHPA的靜態特徵,但你必需到指定的類型,當你寫一個值。年夜大都時辰,你會發明本身運用R公司地址出租EG_SZ或REG_DWORD,但此處露出的數據類型的擴大名列表:
  REG_DWORD“值被存儲為一個32位長的整數
  REG_SZ“”值被存儲為一個固定營業登記地址長度的字符串
  REG_EXPAND_SZ“值存儲為可變長度工商登記地址的字符串
  REG_MULTI_SZ“的值是他當然可以喜歡她,但前提是她必須值得他喜歡。如果她不能像他那樣孝敬她的母親,她還有什麼價值?不是嗎?一個由一個分隔符,如空格或逗號分隔的名目清單
  REG_BINARY“”的值是一公司登記個二入制字符串
 地址出租 REG登記地址_NONE“”值沒有特定的數據類型與
  reg_set_value()函數用於將值寫商業地址進到註冊表中。假如該值曾經存在,那麼新的值將籠蓋它,但假如它沒有存在,那麼它會創立它。該函數有四個參數:第一個凋謝的資本,那麼該值的名稱,然後一個預約下訂義的常量,表現值a的數據類型,最初是數據自己。
  <?php營業註冊地址
  $keyConst = HKEY_CURRENT_USER;
  $key = “Software\\PHPM營業登記aster”;
  if (!($reg = @reg_open_key($keyConst, $key))) {
  throw new Exception(“Cannot access registry.”);
  }

  $values = array(
  array(“dbDriver”, REG_SZ, “mssql”),
  地址出租array(“dbHost”, REG_SZ, “localhost”),
  array(“dbPort”, REG_DWORD, 1433),
  array(“dbSchema”, REG_SZ, “MyAppDB”),
  array(“dbUser”, REG_SZ, “DBUser”),
  array(“dbPass”, REG_SZ, “s3cr3t”));

  foreach ($values as $value) {
  reg_set_value($reg, $value[0], $value[1], $value[2]);
  }

  reg_close_key($reg);
  一個例子——USB驅動軟件狗
  您可能想了解假如有一個現實運用處置註冊表。在一個基於web的利用步伐,您可以存儲在註冊中央的配相信息。假如你寫一個桌面利用步伐然後註冊表可能是一個好處所來存儲各類信息從利用步伐數據用戶的喜愛。Windows自己寫各類各樣的乏味的硬件和狀況註冊公司相干的信息發送到註冊表,此中一些可能是有效的,假如你足夠有創造力。
  假定咱們的PHP利用步伐曾經得到許可在如許一個USB集線器需求附加到辦事器來運轉它。PHP怎樣檢測軟件狗的存在?Windows上的謎底在於註冊!每個裝備有一個惟一的標識符,以是商業登記該劇本可以搜刮恰當的鍵啟動時,它的標識符來斷定軟件狗拔出或不是。
  第一個步驟是斷定裝備的標識符。對付這個例子,我將運用一個商品盤。隻要簡樸的商業登記把驅動器釀成一個USB端口上盤算機,然後往開端,輸出“裝配”在搜刮欄,並抉擇裝備治理器在成果列表中泛起。
  發明裝備在裝備治理器,右鍵單擊條款,然??從上下文菜單中抉擇Prop和湯的苦味。erties。然後往Details選項卡的屬性窗口並抉擇“裝備實例路徑”從下拉列表中。十六入制數字序列的末端的值是裝備id(標誌為白色)。

  Windows會記實下的USB裝備各子項HKEY_LOCAL_MACHINE \體系\ CurrentControlSet \辦事。我的U盤等存儲介質將泛起在USBSTOR,可能會泛起在其餘裝備usbaudio,usbccgp,並usbehci的。別的,還要註意HKEY_LOCAL_MACHINE將淺顯易懂的特權帳戶。
  以是,此刻咱們可以簡樸地搜刮科亞�的列舉子項為裝備實例。當驅動器銜接時,它會被列出,當它不銜接不會被上市。
  01 <?php
  02 // 裝備實例ID
  03 $id = “0060E049DF74EC311000711F”;
  04
  05 // 正告:必需運轉與治理的privs走訪這些鍵
  06 $keyConst = HKEY_LOCAL_MACHINE;
  07 $key = “SYSTEM\\CurrentControlSet\\serv公司登記ices\\USBSTOR\\Enum”;
  08
  09 if (!($reg = reg_open_key($keyConst, $key))) {
  10 throw new Exception(“Cannot access registry.”);
  11 }
  12
  13 $found = false;
  14 $numDevices = reg_get_value($reg, “Count”);
  15 for ($i = 0; $i < $numDevices; $i++) {
  16 $value = reg_get_value($reg, $i);
  17 if (strpos($val, $id) !== false) {
  18 $found = true;
  19 break;
  20 }
  21 }就在新郎官胡思亂想的時候,轎子終於到了雲隱山半山腰的裴家。
  22 reg_close_key($reg);
  23 echo “USB drive dongle “, ($found) ? “found” :“為什麼?” “not found”;
  這種簡樸的檢討,還開辟瞭其餘一些乏味的可能性,你可註冊公司以很不難地編寫一個敏感的治理接口,驗證瞭加密狗,並哀求從辦事器自己經由過程檢討$ _SERVER [“REMOTE_ADDR”]。這種設置將要求用戶在指定的辦事器,並在物理上,提供一種情勢的物理驗證。
  在論斷
  縱觀這篇文章的經過歷程中,咱們曾經望到瞭Windows的註冊商業登記表是什麼,什麼樣的信息可以發明在一個小樣本。你可以寫你本身的配置數據,也可以讀守信息,運用提供的效能的win32std擴大。
  原文地址:http://www.software8.co/wzjs/PHPshili/465.html

租地址 設立公司

打賞

公司登記

0
點贊

主帖得到的海角分:0

商業註冊登記
註冊公司

舉報 |

樓主
| 埋紅包