幾個非常有用的MS-DOS 命令 |
|
conundrum
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
幾個非常有用的MS-DOS 命令 http://www.it.com.cn/f/desktop/055/12/111704.htm 使用 Ipconfig 可顯示 TCP/IP 網路配置。 使用 Nbtstat 可顯示協定統計和當前 TCP/IP 連接。 使用 Netsh 可在命令行狀態或腳本介面下配置並監視 Windows 2000。 使用 Nslookup 可顯示 DNS(功能變數名稱系統)名稱伺服器資訊。 使用 Pathping 可確定導致網路問題的路由器或鏈路。 Ipconfig 該診斷命令顯示所有當前的 TCP/IP 網路配置值。該命令在運行 DHCP 系統上的特殊用途,允許用戶決定 DHCP 配置的 TCP/IP 配置值。 ipconfig [/all | /renew [adapter] | /release [adapter]] 參數 /all ?生完整顯示。在沒有該開關的情況下 ipconfig 只顯示 IP 位址、子網路遮罩和每個網卡的默認閘道值。 /renew [adapter] 更新 DHCP 配置參數。該選項只在運行 DHCP 用戶端服務的系統上可用。要指定適配器名稱,請鍵入使用不帶參數的 ipconfig 命令顯示的適配器名稱。 /release [adapter] 發佈當前的 DHCP 配置。該選項禁用本地系統上的 TCP/IP,並只在 DHCP 用戶端上可用。要指定適配器名稱,請鍵入使用不帶參數的 ipconfig 命令顯示的適配器名稱。 如果沒有參數,那? ipconfig 實用程式將向用戶提供所有當前的 TCP/IP 配置值,包括 IP 位元址和子網路遮罩。該使用程式在運行 DHCP 的系統上特別有用,允許用戶決定由 DHCP 配置的值。 Nbtstat 該診斷命令使用 NBT(TCP/IP 上的 NetBIOS)顯示協定統計和當前 TCP/IP 連接。該命令只有在安裝了 TCP/IP 協定之後才可用。 nbtstat [-a remotename] [-A IP address] [-c] [-n] [-R] [-r] [-S] [-s] [interval] 參數 -a remotename 使用遠端電腦的名稱列出其名稱表。 -A IP address 使用遠端電腦的 IP 地址並列出名稱表。 -c 給定每個名稱的 IP 地址並列出 NetBIOS 名稱緩存的內容。 -n 列出本地 NetBIOS 名稱。“已註冊”表明該名稱已被廣播 (Bnode) 或者 WINS(其他節點類型)註冊。 -R 清除 NetBIOS 名稱緩存中的所有名稱後,重新裝入 Lmhosts 文件。 -r 列出 Windows 網路名稱解析的名稱解析統計。在配置使用 WINS 的 Windows 2000 電腦上,此選項返回要通過廣播或 WINS 來解析和註冊的名稱數。 -S 顯示用戶端和伺服器會話,只通過 IP 位址列出遠端電腦。 -s 顯示用戶端和伺服器會話。嘗試將遠端電腦 IP 地址轉換成使用主機文件的名稱。 interval 重新顯示選中的統計,在每個顯示之間暫停 interval 秒。按 CTRL C 停止重新顯示統計資訊。如果省略該參數,nbtstat 列印一次當前的配置資訊。 Netsh NetShell 實用程式 (netsh) 是用於配置和監控 Windows 2000 命令行腳本介面。配置工具?用戶提供互動式外殼介面。前端是接受命令的命令外殼,後端是與系統元件或實用程式通訊對應的幫助程式。幫助程式是動態連結程式庫文件 (.dll),擴展了 netsh 的功能。幫助程式提供配置和(或)監控對一個或多個服務、工具或協定的支援,但是幫助也可以用於擴展其他幫助程式。命令外殼將命令發送給適當的幫助程式,然後幫助程式執行命令。 netsh 命令允許您運行 NetShell 實用程式來顯示或修改當前運行電腦的配置。它還提供了一個腳本化功能,對於指定電腦,可以用批次處理模式運行一系列命令的集合。 Contexts 命令外殼提供上下文,它們是指定網路元件的 netsh 命令分組。上下文是附加到命令上的字串。在給定上下文中輸入的命令傳遞到關聯的幫助程式。上下文是否可用取決與安裝的 Windows 2000 元件。例如,在 netsh 命令鍵入 routing,將更改到路由選擇上下文。在 netsh 命令鍵入 ras,將更改到 ras(路由選擇和遠端存取服務的遠端存取部分)上下文。 子上下文可能存在於每個上下文中。例如,在路由選擇上下文,您可以更改到 ip 和 ipx 子上下文。 netsh [-r RemoteComputer] [-a AliasFile] [-c Context] [Command | -f ScriptFile] 要顯示可以在上下文中使用的子上下文和命令列表,在 netsh 提示符下鍵入上下文名稱,後面跟空格和 ?。例如,要顯示可以在 routing 上下文中使用的子上下文和命令列表,請在 netsh 提示符下鍵入如下命令: netsh>routing ? Netsh 命令 與上文所示的上下文命令一樣,下列附加命令也可以與 Netsh 一起使用。可選參數顯示在括弧中([ ])。備選條目之間有一個管道(|)。 命令 結果 ? 顯示幫助。 abort 丟棄脫機模式下進行的所有更改。對聯機模式無效。 add helper DLL-name 將幫助程式 DLL 安裝在 netsh 中。 alias [alias-name] [string1] [string2 ...] 如果是 alias,則列出全部別名。 如果是 alias alias-name,則顯示相同的字串。 如果是 alias alias-name string1 string2 ...,則將 alias-name 設置?指定的字串。 bye 退出程式。 commit 將脫機模式下所作的全部更改提交到路由器。對聯機模式無效。 delete helper DLL-name 從 netsh 中刪除幫助程式 DLL。 dump -file-name 將配置轉儲或附加到文字檔案。 exec Script-file-name 載入腳本文件並執行其中的命令。 exit 退出程式。 h 顯示幫助。 help 顯示幫助。 offline 將當前模式設置?脫機。任何在此模式下所作的更改均將保存,但需要在路由器中設置 commit 或 online 命令。 online 將當前模式設置?聯機。任何在此模式下的更改將立即在路由器中反映出來。 popd 從堆疊中彈出上下文。 pushd 將當前上下文推入堆疊。 quit 退出程式。 set mode [mode =] online | offline 將當前模式設置?聯機或脫機。 show alias | helper | mode 如果是 show alias,則列出全部定義的別名。 如果是 show helper,則列出全部最高級別的幫助程式。 如果是 show mode,則顯示當前的模式。 unalias alias-name 刪除指定的別名。 http://www.it.com.cn/f/desktop/055/12/111704_1.htm Nslookup 該診斷工具顯示來自功能變數名稱系統 (DNS) 名稱伺服器的資訊。使用此工具之前,您應當熟悉 DNS 的工作原理。Nslookup 只有在安裝了 TCP/IP 協定後才可以使用。 模式 Nslookup 有兩種模式:互動式和非互動式。 如果僅需要查找一塊資料,請使用非互動式模式。對於第一個參數,鍵入要查找的電腦的名稱或 IP 地址。對於第二個參數,鍵入 DNS 名稱伺服器的名稱或 IP 地址。如果忽略第二個參數,將使用默認的 DNS 名稱伺服器。 如果需要查找多塊資料,可以使用互動式模式。第一個參數鍵入連字元 (-),第二個參數鍵入 DNS 名稱伺服器的名稱或 IP 地址。或者,省略使用的參數和默認 DNS 名稱伺服器。 nslookup [-option ...] [computer-to-find | - [server]] 參數 -option... 將一個或多個 nslookup 命令指定?命令行選項。關於命令列表,請參閱 Nslookup 子命令。每個選項均由連字元 (-) 後緊跟命令名組成,有時是等號 (=) 後跟一個數值。例如,要將默認的查詢類型更改?主機(電腦)資訊,並將初始超時更改? 10 秒,您可以鍵入: nslookup -querytype=hinfo -timeout=10 命令行長度必須少於 256 個字元。 computer-to-find 使用當前默認的伺服器或使用指定的 server 來查找 computer-to-find 的資訊。如果 computer-to-find 是 IP 地址,並且查詢類型? A 或 PTR,則返回電腦的名稱。如果 computer-to-find 是名稱,並且沒有尾碼句點,則默認的 DNS 功能變數名稱附加到該名稱上。該操作取決於 set 選項的狀態:domains、srchlist、defname 和 search。 要查找不在當前 DNS 域的電腦,請在名稱上附加句點。 如果鍵入連字元 (-) 代替 computer-to-find,命令提示符行更改? nslookup 互動式模式。 server 指定將該伺服器作? DNS 名稱伺服器使用。如果省略了 server,將使用默認的 DNS 名稱伺服器。 PathPing 該路由跟蹤命令結合了 ping 和 tracert 命令的功能,可提供這兩個命令都無法提供附加資訊。經過一段時間,pathping 命令將資料包發送到最終目標位置途中經過的每個路由器,然後根據從每個躍點返回的資料包統計結果。因? pathping 顯示指定的所有路由器和鏈結的資料包的丟失程度,所以用戶可據此確定引起網路問題的路由器或鏈結。 pathping [-n] [-h maximum_hops] [-g host-list] [-p period] [-q num_queries [-w timeout] [-T] [-R] target_name 參數 -n 不將位址解析?主機名。 -h maximum_hops 指定搜索目標的最大躍點數。預設值? 30 個躍點。 -g host-list 允許沿著 host-list 將一系列電腦按中間閘道(鬆散的源路由)分隔開來。 -p period 指定兩個連續的探測 (ping) 之間的時間間隔(以毫秒?單位)。預設值? 250 秒(1/4 秒)。 -q num_queries 指定對路由所經過的每個電腦的查詢次數。預設值? 100。 -w timeout 指定等待應答的時間(以毫秒?單位)。預設值? 3000 毫秒(3 秒)。 -T 在向路由所經過的每個網路設備發送的探測資料包上附加一個 2 級優先順序標記(例如 802.1p)。這有助於標識沒有配置 2 級優先順序的網路設備。該參數必須大寫。 -R 查看路由所經過的網路設備是否支援“資源預留設置協定”(RSVP),該協定允許主機電腦?某一資料流程保留一定數量的帶寬。該參數必須大寫。 target_name 指定目的端,可以是 IP 位址,也可以是主機名。 附錄: Nslookup 子命令 Nslookup:help 顯示 nslookup 子命令的簡短摘要。? 是 help 命令的同義詞。 help | ? Nslookup:exit 退出 nslookup。 exit Nslookup:finger 與當前電腦上的指標伺服器連接。前一次對電腦的查找成功並返回地址資訊後,當前電腦被定義。請參閱相關主題列表中的 set querytype=A 命令。 finger [username] [> filename] | [>> filename] 參數 username 指定要查找的用戶名。 filename 指定用於保存輸出的檔案名。可以使用大於 (>) 和大於 (>>) 兩倍的字元按普通方式重定向輸出。 Nslookup:ls 列出 DNS 域的資訊。默認輸出包含電腦名及其 IP 位址。當輸出定向到文件時,每從伺服器接收到 50 條記錄將列印散列符號。 ls [option] dnsdomain [> filename] | [>> filename] 參數 option -t querytype 列出指定類型的所有記錄。關於 querytype 的描述,請參閱 set querytype 主題。 -a 列出該 DNS 域中電腦的別名。該參數是 -t CNAME 的同義詞。 -d 列出該 DNS 域的所有記錄。該參數是 -t ANY 的同義詞。 -h 列出該 DNS 域的 CPU 和作業系統資訊。該參數是 -t HINFO 的同義詞。 -s 列出該 DNS 域中電腦的知名服務。該參數是 -t WKS 的同義詞。 dnsdomain 指定需要其資訊的 DNS 域。 filename 指定用於保存輸出的檔案名。可以使用大於 (>) 和大於 (>>) 兩倍的字元按普通方式重定向輸出。 Nslookup:lserver 將默認伺服器更改到指定的 DNS 域。lserver 命令使用初始伺服器搜索關於指定 DNS 域的資訊。該命令與使用當前默認伺服器的 server 命令相反。 http://www.it.com.cn/f/desktop/055/12/111704_2.htm lserver dnsdomain 參數 dnsdomain ?默認的伺服器指定新的 DNS 域。 Nslookup:root 將默認的伺服器更改? DNS 功能變數名稱空間的根伺服器。電腦 ns.nic.ddn.mil 當前正在使用。該命令是 lserver ns.nic.ddn.mil 的同義詞。可以使用 set root 命令更改根伺服器的名稱。 root Nslookup:server 將默認的伺服器更改到指定的 DNS 域。server 命令使用當前默認的伺服器來查找關於指定 DNS 域的資訊。該命令與使用初始伺服器的 lserver 命令相反。 dnsdomain 參數 dnsdomain ?默認的伺服器指定新的 DNS 域。 Nslookup:set 更改影響查找工作方式的配置設置。 set keyword[=value] 參數 keyword 關鍵字列在各自的“幫助”主題下。請參閱 set keyword。使用 set all 查看當前設置的列表。 Nslookup:set all 列印配置設置的當前值。同時列印關於默認伺服器和電腦(主機)的資訊。 set all Nslookup:set cl[ass] 更改查詢類別。類別指定資訊的協定組。 set cl[ass]=value Default = IN 參數 value IN 指定 Internet 類別。 CHAOS 指定 Chaos 類別。 HESIOD 指定 MIT Athena Hesiod 類別。 ANY 指定任何前面列出的通配符()。 Nslookup:set [no]deb[ug] 打開或關閉調試模式。打開調試時,將列印更多有關發送到伺服器的資料包和收到的回答的資訊。 set [no]deb[ug] Default = nodebug Nslookup:set [no]d2 打開或關閉窮舉調試模式。每個資料包的所有欄位均列印。 set [no]d2 預設值 = nod2 Nslookup:set [no]def[name] 將默認的 DNS 功能變數名稱附加到單個元件查詢請求上。單個元件是指不包含周期的元件。 set [no]def[name] Default = defname Nslookup:set do[main] 將默認的 DNS 域更改?指定的名稱默認的 DNS 功能變數名稱根據 defname 和 search 選項的狀態附加到搜索請求中。如果默認 DNS 域的名稱中包含至少兩個元件,則 DNS 域搜索列表包含默認 DNS 域的父。例如,如果默認的 DNS 域是 mfg.widgets.com,則搜索列表命名? mfg.widgets.com 和 widgets.com。使用 set srchlist 命令指定另一個列表。使用 set all 命令顯示列表。 set do[main]=name Default = value from hostname 參數 name ?默認的 DNS 域指定新名稱。 Nslookup:set [no]ig[nore] 忽略資料包截取錯誤。 set [no]ig[nore] Default = noignore Nslookup:set po[rt] 將默認的 TCP/UDP DNS 名稱伺服器埠更改?指定值。 set po[rt]=value Default = 53 參數 value 指定新的默認 TCP/UDP DNS 名稱伺服器埠值。 Nslookup:set q[uerytype] 更改資訊查詢的類型。關於類型的詳細資訊,請參閱“請求注釋 (RFC) 1035”。set type 命令是 set querytype 的同義詞。 set q[uerytype]=value Default = A 參數 value A 電腦的 IP 位址。 ANY 所有資料類型。 CNAME 別名的規範名稱。 GID 組名的組識別字。 HINFO 電腦的 CPU 和作業系統類型。 MB 郵箱功能變數名稱。 MG 郵件組成員。 MINFO http://www.it.com.cn/f/desktop/055/12/111704_3.htm 郵箱或郵件列表資訊。 MR 郵件重命名功能變數名稱。 MX 郵件交換器。 NS 用於命名區域的 DNS 名稱伺服器。 PTR 如果查詢是 IP 位址,則?電腦名;否則?指向其他資訊的指標。 SOA DNS 域的授權?動記錄 TXT 文本資訊。 UID 用戶識別字。 UINFO 用戶資訊。 WKS 知名服務的描述。 Nslookup:set [no]rec[urse] 如果沒有該資訊,則告知 DNS 名稱伺服器查詢其他伺服器。 set [no]rec[urse] Default = recurse Nslookup:set ret[ry] 設置重試的次數。在一定時間內(隨 set timeout 更改)沒有收到對請求的答復,則將超時時段加倍,然後重新發送請求。重試值控制放棄之前重新發送請求的次數。 set ret[ry]=number Default = 4 參數 number 指定新的重試次數值。 Nslookup:set ro[ot] 更改根伺服器的名稱。這會影響 root 命令。 set ro[ot]=computer Default = ns.nic.ddn.mil 參數 computer ?根伺服器指定新名稱。 Nslookup:set [no]sea[rch] 如果集合和搜索請求包含至少一個句點,但是不是以尾碼句點結尾,則將 DNS 域搜索列表中的 DNS 功能變數名稱附加到請求中,直到得到答復?止。 set [no]sea[rch] Default = search Nslookup:set srchl[ist] 更改默認的 DNS 功能變數名稱和搜索列表。最多可以指定六個用正斜杠 (/) 分隔的名稱。該命令替代 set domain 命令默認的 DNS 功能變數名稱和搜索列表。使用 set all 命令顯示列表。 Set srchl[ist] name1/name2/... Default = value based on hostname 參數 name1/name2/... ?默認的 DNS 域和搜索列表指定新名稱。例如,下列代碼將 DNS 域設置? mfg.widgets.com,並將搜索列表設置?三個名稱: set srchlist=mfg.widgets.com/mrp2.widgets.com/widgets.com Nslookup:set ti[meout] 更改等待對請求答復的初始秒數。如果在這個時段內沒有收到對請求的回復,則將超時加倍,然後重新發送請求。使用 set retry 選項控制重試的次數。 set ti[meout]=number Default = 5 參數 number ?等待答復的秒數指定新數值。 Nslookup:set ty[pe] 更改資訊查詢的類型。關於類型的詳細資訊,請參閱“請求注釋 (RFC) 1035”。set type 命令是 set querytype 的同義詞。 set ty[pe]=value Default = A Nslookup:set [no]v[c] 表明向伺服器發送請求時,總是使用虛電路。 set [no]v[c] Default = novc Nslookup:view 排序和列出前一個 ls 命令或命令組的輸出。 view filename 參數 filename 指定包含前一個 ls 命令或命令組輸出的檔案名台灣災難都是事後算帳 無人飛行載具(Unmanned Aerial Vehicle,UAV)為什麼沒大量應用於救災行列 |
conundrum
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
最近打算使用Sharepoint做一個IP管理系統, http://dog.xmu.edu.cn/modules.php?op=modload&name=News&file=article&sid=190&mode=thread&order=0&thold=0 其中涉及到對IP進行排序,比較等操作。由於我們手動輸入的IP都是字串形式,比如210.34.0.13,210.34.00.222,這樣2個IP之間沒有任何可比性,就算能比速度也很慢:),所以考慮把用戶輸入的IP即時轉換?數值保存以便比較。先行保存也是加快查詢速度。 在我的感覺裏,Sharepoint就像一個IE裏的Excel,對一個列表,也有根據公式計算出來的欄,我的目的是把210.34.0.13變成((210 * 256 + 23) * 256 + 0) * 256 + 13,根據VBA的函數,做是肯定能做,不過這個公式肯定很長。。抱著試試看的問題,想想Sharepoint是否能處理這?長這?bt的公式,於是一步步分解寫出了下面這個公式: mid([IP文字], 1, search(".", [IP文字]) - 1) * 256 * 256 * 256 + mid([IP文字], search(".", [IP文字]) + 1, search(".", [IP文字], search(".", [IP文字]) + 1) - search(".", [IP文字]) - 1) * 256 * 256 + mid([IP文字], search(".", [IP文字], search(".", [IP文字]) + 1) + 1, search(".", [IP文字], search(".", [IP文字], search(".", [IP文字]) + 1) + 1) - search(".", [IP文字], search(".", [IP文字]) + 1) - 1) * 256 + mid([IP文字], search(".", [IP文字], search(".", [IP文字], search(".", [IP文字]) + 1) + 1) + 1, len([IP文字]) - search(".", [IP文字], search(".", [IP文字], search(".", [IP文字]) + 1) + 1))台灣災難都是事後算帳 無人飛行載具(Unmanned Aerial Vehicle,UAV)為什麼沒大量應用於救災行列 |
conundrum
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
使用腳本添加IP安全策略 ipsec http://dog.xmu.edu.cn/modules.php?op=modload&name=News&file=article&sid=250 使用windows的IP安全策略可以?我們機器起一個功能弱但是夠用的防火牆,特別是在裝機過程中,不需借助其他軟體就很好地保護了系統。我的裝機過程一般是先拔網線,安裝系統,然後起IP安全策略或者iptables,接著開始打補丁。 一般能用腳本的我都推薦使用腳本,腳本是可重用的,而且編輯腳本比用gui方便。本文將給出在win2k和win2k3下的2個IP安全策略腳本模版,命令可多次運行,會自動替換?最新的。模版裏面的^類似linux下的\,用來告訴cmd.exe下面是和上面同一行。 由於winxp sp2已經內建了防火牆,所以IP安全策略用處不是太大,如果你想知道winxp下命令行添加安全策略的方法,可自行查資料。 win2k下的ip安全策略添加需要用到ipsecpol這個程式,在windows的resource kit裏有,包括一個exe和2個dll。我在這裏不解釋他的使用方法,你可以ipsecpol/? > ipsecpolhelp.txt察看。這是我自己使用的腳本。 rem 首先限制所有 ipsecpol -w REG -p "Haishion" -r "Block All IP" -f *+0 -n BLOCK rem 開放某些機器的無限制訪問,比如你的工作用機 ipsecpol -w REG -p "Haishion" -r "Allow IP" -f ^ 210.34.0.1+0 ^ 210.34.0.2+0 ^ -n PASS rem 開放伺服器埠,比如http 80,ftp 20,21 ipsecpol -w REG -p "Haishion" -r "Open Port" -f ^ *+0:20:TCP ^ *+0:21:TCP ^ *+0:80:TCP ^ -n PASS rem 開放某些特定的ip可以訪問特定的埠 ipsecpol -w REG -p "Haishion" -r "Allow IP Port" -f ^ 0+*:53:UDP ^ 0+*:80:TCP ^ 210.34.0.3+0:8080:TCP ^ -n PASS rem 指派 ipsecpol -w REG -p "Haishion" -x win2k3自帶了命令行添加的功能,就是netsh ipsec,以下是我使用的腳本,你可能可以直接寫成netsh腳本文件而不是bat文件。 REM =================開始咯================ netsh ipsec static ^ delete policy name=Haishion netsh ipsec static ^ add policy name=Haishion REM 添加2個動作,禁止和允許 netsh ipsec static ^ add filteraction name=Perm action=permit netsh ipsec static ^ add filteraction name=Block action=block REM 首先幹掉所有訪問 netsh ipsec static ^ add filterlist name=AllAccess netsh ipsec static ^ add filter filterlist=AllAccess srcaddr=Me dstaddr=Any netsh ipsec static ^ add rule name=BlockAllAccess policy=Haishion filterlist=AllAccess filteraction=Block REM 開放某些IP無限制訪問 netsh ipsec static ^ add filterlist name=UnLimitedIP netsh ipsec static ^ add filter filterlist=UnLimitedIP srcaddr=210.34.0.1 dstaddr=Me netsh ipsec static ^ add filter filterlist=UnLimitedIP srcaddr=210.34.0.2 dstaddr=Me netsh ipsec static ^ add rule name=AllowUnLimitedIP policy=Haishion filterlist=UnLimitedIP filteraction=Permit REM 開放某些埠 netsh ipsec static ^ add filterlist name=OpenSomePort netsh ipsec static ^ add filter filterlist=OpenSomePort srcaddr=Any dstaddr=Me dstport=20 protocol=TCP netsh ipsec static ^ add filter filterlist=OpenSomePort srcaddr=Any dstaddr=Me dstport=21 protocol=TCP netsh ipsec static ^ add filter filterlist=OpenSomePort srcaddr=Any dstaddr=Me dstport=80 protocol=TCP netsh ipsec static ^ add rule name=AllowOpenSomePort policy=Haishion filterlist=OpenSomePort filteraction=Permit REM 開放某些ip可以訪問某些埠 netsh ipsec static ^ add filterlist name=SomeIPSomePort netsh ipsec static ^ add filter filterlist=SomeIPSomePort srcaddr=Me dstaddr=Any dstport=53 protocol=UDP netsh ipsec static ^ add filter filterlist=SomeIPSomePort srcaddr=Me dstaddr=Any dstport=80 protocol=TCP netsh ipsec static ^ add filter filterlist=SomeIPSomePort srcaddr=210.34.0.3 dstaddr=Me dstport=8080 protocol=TCP netsh ipsec static ^ add rule name=AllowSomeIPSomePort policy=Haishion filterlist=SomeIPSomePort filteraction=Permit台灣災難都是事後算帳 無人飛行載具(Unmanned Aerial Vehicle,UAV)為什麼沒大量應用於救災行列 |
conundrum
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
用於介面 IPv6 的 Netsh 命令 http://www.cpcwedu.com/blog/blogview.asp?logID=469 用於介面 IPv6 的 Netsh 命令提供了可用於查詢和配置 IPv6 介面、位址、緩存以及路由的命令行工具。 此外,Netsh 介面 IPv6 環境還具有 6to4 的子環境。使用 netsh interface IPv6 6to4 環境中的命令,可以配置或顯示 6to4 主機或 6to4 路由器上的 6to4 服務的配置。 可以從 Windows Server 2003 家族的命令提示符下或 netsh interface IPv6 環境的命令提示符下運行這些命令。?使這些命令在 Windows Server 2003 家族的命令提示符下工作,在按照以下語法中所示的內容鍵入命令和參數之前必須先鍵入 netsh interface ipv6。Windows 2000 和 Windows Server 2003 家族中的 netsh 環境命令之間可能存在功能上的差異。 要在命令提示符下查看命令幫助,可鍵入 CommandName /?,其中,CommandName 是命令的名稱。 有關 netsh 的詳細資訊,請參閱 Netsh 概述和輸入 netsh 上下文。 若要查看該命令語法,請單擊以下命令: 6to4 指定使用 netsh interface IPv6 6to4 的 6to4 環境。 語法 6to4 add 6over4tunnel 使用指定的 IPv4 位址創建 6over4 介面。 語法 add 6over4tunnel [[interface=]String] [localaddress=]IPv4Address[[store=]{active | persistent}] 參數 [[interface=]String] 指定介面名稱或索引。 [localaddress=]IPv4Address 必需。指定封裝的 IPv4 地址。 [[store=]{active | persistent}] 指定更改是否僅持續到下次?動之前 (active) 還是始終保持 (persistent)。默認選擇? persistent。 示例 本示例命令使用 IPv4 位址 10.1.1.1,在名?“Private”的介面上創建了一個 6over4 介面。 add 6over4tunnel "Private" 10.1.1.1 add address 在指定的介面上添加 IPv6 位址。時間值可以表示?天 (d)、小時 (h)、分鐘 (m) 及秒 (s)。例如,2d 表示兩天。 語法 add address [[interface=]String] [address=]IPv6Address[[type=]{unicast | anycast}][[validlifetime=]{Integer | infinite}][[preferredlifetime=]{Integer | infinite}][[store=]{active | persistent}] 參數 [[interface=]String] 指定介面名稱或索引。 [address=]IPv6Address 必需。指定要添加的 IPv6 地址。 [[type=]{unicast | anycast}] 指定是添加單播地址 (unicast) 還是任何播地址 (anycast)。默認選擇? unicast。 [[validlifetime=]{Integer | infinite}] 指定地址有效的生存周期。預設值? infinite。 [[preferredlifetime=]{Integer | infinite}] 指定首選地址的生存周期。預設值? infinite。 [[store=]{active | persistent}] 指定更改是否僅持續到下次?動之前 (active) 還是始終保持 (persistent)。默認選擇? persistent。 示例 本示例命令將 IPv6 地址 FE80::2 添加到名?“Private”的介面。 add address "Private" FE80::2 add dns 在指定介面的 DNS 伺服器靜態配置列表中添加新的 DNS 伺服器 IP 位址。 語法 add dns [interface=]String [address=]IPAddress [[index=]Integer] 參數 [interface=]String 必需。按名稱指定要將 DNS 伺服器 IP 地址添加到哪個介面的 DNS 伺服器 IP 位址列表中。 [address=]IPAddress 必需。指定要添加到列表中的 DNS 伺服器的 IPv6 位址。 [[index=]Integer] 指定靜態配置列表中用於放置在 address 中指定的 DNS 伺服器 IP 位址的位置。默認情況下,DNS 伺服器 IP 位址將被添加到列表的最後。 注釋 如果指定了索引,DNS 伺服器將被放在列表中的該索引位置。 示例 第一個示例命令中,IPv6 地址? FEC0:0:0:FFFF::1 的 DNS 伺服器被添加到名?“Local Area Connection”的介面的 DNS 伺服器 IP 位址列表中。第二個示例中,IPv6 地址? FEC0:0:0:FFFF::2 的 DNS 伺服器被添加到名?“Local Area Connection”的介面的伺服器列表的索引 2 處(作?該列表中的第二台伺服器)。 add dns "Local Area Connection" FEC0:0:0:FFFF::1 add dns "Local Area Connection" FEC0:0:0:FFFF::2 index=2 add prefixpolicy 添加指定字首的源和目標位址選擇策略。 語法 add prefixpolicy [prefix=]IPv6Address/Integer[precedence=]Integer [label=]Integer[[store=]{active | persistent}] 參數 [prefix=]IPv6Address/Integer 必需。指定要添加到策略表中的策略的字首。Integer 指定字首的長度。 [precedence=]Integer 必需。指定用於對策略表中的目標位址進行排序的優先值。 [label=]Integer 必需。指定允許要求一個特定的源位址字首與目標位址字首一起使用的策略的標簽值。 [[store=]{active | persistent}] 指定更改是否僅持續到下次?動之前 (active) 還是始終保持 (persistent)。默認選擇? persistent。 示例 本示例命令?字首 ::/96 添加了字首策略(優先值? 3,標簽值? 4)。 add prefixpolicy ::/96 3 4 add route 添加指定字首的路由。時間值可以表示?天 (d)、小時 (h)、分鐘 (m) 及秒 (s)。例如,2d 表示兩天。 語法 add route [prefix=]IPv6Address/Integer [[interface=]String][[nexthop=]IPv6Address] [[siteprefixlength=]Integer][[metric=]Integer] [[publish=]{no | yes | immortal}][[validlifetime=]{Integer | infinite}][[preferredlifetime=]{Integer | infinite}][[store=]{active | persistent}] 參數 [prefix=]IPv6Address/Integer 必需。指定要添加路由的字首。Integer 指定字首的長度。 [[interface=]String] 指定介面名稱或索引。 [[nexthop=]IPv6Address] 指定閘道位址(如果字首不在鏈結中)。 [[siteprefixlength=]Integer] 指定整個站點的字首長度(如果字首不在鏈結中)。 [[metric=]Integer] 指定路由標記。 [[publish=]{no | yes | immortal}] 指定路由在“路由通告”中是通知 (yes)、在無限生命周期內通知 (immortal) 還是不通知 (no)。默認選擇? no。 [[validlifetime=]{Integer | infinite}] 指定路由有效的生存周期。預設值? infinite。 [[preferredlifetime=]{Integer | infinite}] 指定首選路由的生存周期。預設值? infinite。 [[store=]{active | persistent}] 指定更改是否僅持續到下次?動之前 (active) 還是始終保持 (persistent)。默認選擇? persistent。 示例 本示例命令在名?“Internet”的介面上添加了字首? 3FFE::、字首長度? 16 位的路由 (3FFE::/16)。nexthop 的值? FE80::1。 add route 3FFE::/16 "Internet" FE80::1 add v6v4tunnel 創建 IPv6-in-IPv4 隧道。 語法 add v6v4tunnel [[interface=]String] [localaddress=]IPv4Address[remoteaddress=]IPv4Address[[neighbordiscovery=]{enabled | disabled}][[store=]{active | persistent}] 參數 [[interface=]String] 指定介面名稱或索引。 [localaddress=]IPv4Address 必需。指定本地隧道終結點的 IPv4 地址。 [remoteaddress=]IPv4Address 必需。指定遠端隧道終結點的 IPv4 地址。 [[neighbordiscovery=]{enabled | disabled}] 指定是在介面上?用 Neighbor Discovery (enabled) 還是禁用它 (disabled)。默認選擇? disabled。 [[store=]{active | persistent}] 指定更改是否僅持續到下次?動 (active) 還是始終保持 (persistent)。默認選擇? persistent。 示例 本示例命令在介面“Private”上創建了一個 IPv6-in-IPv4 隧道(在本地地址 10.0.0.1 和遠端地址 192.168.1.1 之間)。 add v6v4tunnel "Private" 10.0.0.1 192.168.1.1 delete address 語法 delete address [[interface=]String] [address=]IPv6Address[[store=]{active | persistent}] 在指定的介面上修改 IPv6 位址。 參數 [[interface=]String] 指定介面名稱或索引。 [address=]IPv6Address 必需。指定要刪除的 IPv6 地址。 [[store=]{active | persistent}] 指定刪除是僅持續到下次?動 (active) 還是始終保持 (persistent)。默認選擇? persistent。 示例 本示例命令從名?“Private”的介面中刪除位址 FE80::2。 delete address "Private" FE80::2 delete destinationcache 清除目標緩存。如果指定了介面,則僅清除該介面上的緩存。如果同時指定了位址,則僅刪除該目標緩存項。 語法 delete destinationcache [[interface=]String] [[address=]IPv6Address] 參數 [[interface=]String] 指定介面名稱或索引。 [[address=]IPv6Address] 指定目標位址。 注釋 如果未指定任何參數,所有介面的目標緩存中的所有項都將被刪除。 示例 本示例命令將刪除名?“Private”的介面的目標緩存。 delete destinationcache "Private" delete dns 刪除?指定介面靜態配置的 DNS 伺服器 IPv6 位址。 語法 delete dns [interface=]String [[address=]{IPv6Address | all}] 參數 [interface=]String 必需。按名稱指定要從其 DNS 伺服器列表中刪除 DNS 伺服器的介面。 [[address=]{IPv6Address | all}] 指定要刪除的 DNS 伺服器 IPv6 位址。如果指定了 all,該介面列表中的所有 DNS 伺服器 IPv6 位址都將被刪除。 示例 第一個示例命令將從名?“Local Area Connection”的連接的位址列表中刪除 DNS 伺服器 IPv6 位址 FEC0:0:0:FFFF::1。第二個示例命令將刪除名?“Local Area Connection”的連接的所有 DNS 伺服器 IPv6 位址。 delete dns "Local Area Connection" FEC0:0:0:FFFF::1 delete dns "Local Area Connection" all delete interface 從 IPv6 堆疊中刪除指定介面。 語法 delete interface [[interface=]String][[store=]{active | persistent}] 參數 [[interface=]String] 指定介面名稱或索引。 [[store=]{active | persistent}] 指定刪除是僅持續到下次?動 (active) 還是始終保持 (persistent)。默認選擇? persistent。 示例 本示例命令將刪除名?“Private”的介面。 delete interface "Private" delete neighbors 指定刪除鄰居緩存中的所有項。如果指定了介面,則僅清除該介面上的緩存。如果同時指定了地址,則僅刪除該鄰居緩存項。 語法 delete neighbors [[interface=]String] [[address=]IPv6Address] 參數 [[interface=]String] 指定介面名稱或索引。 [[address=]IPv6Address] 指定鄰居地址。 示例 本示例命令將刪除“Private”介面上的鄰居緩存中的所有項。 delete neighbors "Private" delete prefixpolicy 刪除指定字首的源和目標位址選擇策略。 語法 delete prefixpolicy [prefix=]IPv6Address/Integer[[store=]{active | persistent}] 參數 [prefix=]IPv6Address/Integer 必需。指定要從策略表中刪除的字首 (IPv6Address) 和字首長度 (Integer)。 [[store=]{active | persistent}] 指定刪除是僅持續到下次?動 (active) 還是始終保持 (persistent)。默認選擇? persistent。 示例 本命令將從策略表中刪除字首 ::/96。 delete prefixpolicy ::/96 delete route 刪除 IPv6 路由。 語法 delete route [prefix=]IPv6Address/Integer [[interface=]String][[nexthop=]IPv6Address][[store=]{active | persistent}] 參數 [prefix=]IPv6Address/Integer 必需。指定要刪除的路由的字首。 [[interface=]String] 指定介面名稱或索引。 [[nexthop=]IPv6Address] 指定閘道位址(如果字首不在鏈結中)。 [[store=]{active | persistent}] 指定刪除是僅持續到下次?動 (active) 還是始終保持 (persistent)。默認選擇? persistent。 示例 本示例命令將從名?“Internet”的介面刪除字首? 3FFE::/16、閘道? FE80::1 的路由。 delete route 3FFE::/16 "Internet" FE80::1 dump 當在 netsh 環境中運行時,將網卡的 IPv6 配置轉儲到命令提示符視窗中。如果在批次檔案或腳本中使用,則可將其輸出保存在文字檔案中。 語法 netsh interface ipv6 dump > [PathAndFileName] 參數 [PathAndFileName] 指定該文件的保存位置和保存該配置的目標文件的名稱。 注釋 獲取文件輸出後,可以通過 netsh exec 命令用相同的 IPv6 配置來配置其他電腦或恢復同一電腦的原始配置。 該轉儲命令可保存所有的 IPv6 配置資訊。例如,如果在介面上定義了 ISATAP 或 6to4 配置,dump 命令會將這些配置保存在文字檔案中。 示例 第一個示例中,本命令在 netsh interface ipv6 命令提示符環境下以手動方式運行。IPv6 配置將顯示在該命令提示符視窗中,可將其複製並粘貼到文字檔案內。第二個示例中,dump 命令以批次檔案的方式運行,配置資訊將被保存到 C:\Temp 下名? Ipv6_conf.txt 的文字檔案中。 dump netsh interface ipv6 dump > C:\temp\ipv6_conf.txt install 安裝 IPv6。 語法 install isatap 指定使用 netsh interface IPv6 isatap 的 isatap 環境。 語法 isatap 注釋 IPv4 站點內的 IPv6 和 IPv4 節點間的通信將使用站點內自動隧道定址協定 (ISATAP)。這在 Internet 草案“Intra-Site Automatic Tunnel Addressing Protocol (ISATAP)”(draft-ietf-ngtrans-isatap-00.txt) 中有描述。詳細資訊,請參閱在 IPv4 網路的不同子網節點之間的 IPv6 通信。 renew 重新?動 IPv6 介面。 語法 renew [[interface=]String] 參數 [[interface=]String] 指定介面名稱或索引。 示例 renew "Private" reset 重設 IPv6 配置狀態。 語法 reset set address 在指定的介面上修改 IPv6 位址。時間值可以表示?天 (d)、小時 (h)、分鐘 (m) 及秒 (s)。例如,2d 表示兩天。 語法 set address [[interface=]String] [address=]IPv6Address[[type=]{unicast | anycast}][[validlifetime=]{Integer | infinite}][[preferredlifetime=]{Integer | infinite}][[store=]{active | persistent}] 參數 [[interface=]String] 指定介面名稱或索引。 [address=]IPv6Address 必需。指定要修改的 IPv6 地址。 [[type=]{unicast | anycast}] 指定是將該位址標記?單播位址 (unicast) 還是任何播地址 (anycast)。默認選擇? unicast。 [[validlifetime=]{Integer | infinite}] 指定地址有效的生存周期。預設值? infinite。 [[preferredlifetime=]{Integer | infinite}] 指定首選地址的生存周期。預設值? infinite。 [[store=]{active | persistent}] 指定更改是否僅持續到下次?動 (active) 還是始終保持 (persistent)。默認選擇? persistent。 示例 本示例命令將名?“Private”的介面上的位址 FE80::2 設?任何播地址。 set address "Private" FE80::2 anycast set global 修改全局配置參數。 語法 set global [[defaultcurhoplimit=]Integer][neighborcachelimit=]Integer[[routecachelimit=]Integer][[reassemblylimit=]Integer][[store=]{active | persistent}] 參數 [[defaultcurhoplimit=]Integer] 指定所發送資料包的默認躍點限制。 [neighborcachelimit=]Integer 必需。指定鄰居緩存項的最大數值。 [[routecachelimit=]Integer] 指定路由緩存項的最大數值。 [[reassemblylimit=]Integer] 指定重組緩衝區的最大大小。 [[store=]{active | persistent}] 指定更改是否僅持續到下次?動 (active) 還是始終保持 (persistent)。默認選擇? persistent。 示例 本示例命令將?電腦中所有?用了 IPv6 的介面設置全局參數。它將默認的躍點限制設? 32,將鄰居緩存項的最大數值設? 100,將路由緩存項的最大數值設? 100,000。 set global 32 100 100000 set interface 修改介面配置參數。 語法 set interface [[interface=]String] [[forwarding=]{enabled | disabled}][[advertise=]{enabled | disabled}] [[mtu=]Integer][[siteid=]Integer] [[metric=]Integer][[firewall=]{enabled | disabled}] [[siteprefixlength=]Integer][[store=]{active | persistent}] 參數 [[interface=]String] 指定介面名稱或索引。 [[forwarding=]{enabled | disabled}] 指定到達該介面的資料包是否可以轉發到其他介面。默認選擇? disabled。 [[advertise=]{enabled | disabled}] 指定是否在此介面上發送路由通告。默認選擇? disabled。 [[mtu=]Integer] 指定此介面的 MTU。默認的 MTU 是該鏈結本來的 MTU。 [[siteid=]Integer] 指定站點範圍區域的識別字。 [[metric=]Integer] 指定介面標記,該標記將添加到介面上的所有路由的路由標記中。 [[firewall=]{enabled | disabled}] 指定是否工作在防火牆模式下。 [[siteprefixlength=]Integer] 指定整個站點的全局字首的默認長度。 [[store=]{active | persistent}] 指定更改是否僅持續到下次?動 (active) 還是始終保持 (persistent)。默認選擇? persistent。 示例 本示例命令將使用名稱“Private”、站點 ID 2 以及標記 2 來設置介面。其他所有參數值都保留?預設值。 set interface "Private" siteid=2 metric=2 set mobility 修改移動性配置參數。 語法 set mobility [[security=]{enabled | disabled}][[bindingcachelimit=]Integer][[correspondentnode=]enabled | disabled][[store=]{active | persistent}] 參數 [[security=]{enabled | disabled}] 指定是否必須保護綁定更新。 [[bindingcachelimit=]Integer] 指定綁定緩存項的最大數值。 [[correspondentnode=]enabled | disabled] 指定將“通信節點”的功能設? enabled 還是默認的 disabled。 [[store=]{active | persistent}] 指定更改是否僅持續到下次?動 (active) 還是始終保持 (persistent)。默認選擇? persistent。 示例 set mobility security=disabled bindingcachelimit=1000 corr=enabled set prefixpolicy 修改指定字首的源和目標位址選擇策略。 語法 set prefixpolicy [prefix=]IPv6Address/Integer [precedence=]Integer[label=]Integer [[store=]{active | persistent}] 參數 [prefix=]IPv6Address/Integer 必需。指定要添加到策略表中的策略的字首。Integer 指定字首的長度。 [precedence=]Integer 必需。指定用於對策略表中的目標位址進行排序的優先值。 [label=]Integer 必需。指定允許要求一個特定的源位址字首與目標位址字首一起使用的策略的標簽值。 [[store=]{active | persistent}] 指定更改是否僅持續到下次?動 (active) 還是始終保持 (persistent)。默認選擇? persistent。 示例 本示例命令使用優先值 3 和標簽值 4 在策略表中?字首 ::/96 設置了策略。 set prefixpolicy ::/96 3 4 set privacy 修改與臨時地址生成有關的參數。如果指定了 randomtime=,則不使用 maxrandomtime=。時間值可以表示?天 (d)、小時 (h)、分鐘 (m) 及秒 (s)。例如,2d 表示兩天。 語法 set privacy [[state=]{enabled | disabled}] [[maxdadattempts=]Integer][[maxvalidlifetime=]Integer][[maxpreferredlifetime=]Integer][[regeneratetime=]Integer][[maxrandomtime=]Integer] [[randomtime=]Integer][[store=]{active | persistent}] 參數 [[state=]{enabled | disabled}] 指定是否?用臨時地址。 [[maxdadattempts=]Integer] 指定進行重復地址檢測嘗試的次數。預設值? 5。 [[maxvalidlifetime=]Integer] 指定臨時地址有效的最長生存時間。預設值? 7d(7 天)。 [[maxpreferredlifetime=]Integer] 指定首選匿名的最長生存時間。預設值? 1d(1 天)。 [[regeneratetime=]Integer] 指定生成新地址後到決定不使用臨時地址之前經過的時間。預設值? 5s(5 秒)。 [[maxrandomtime=]Integer] 指定計算?動時的隨機延遲所使用的上限。預設值? 10m(10 分鐘)。 [[randomtime=]Integer] 指定要使用的時間值,而不是?動時生成的值。 [[store=]{active | persistent}] 指定更改是否僅持續到下次?動 (active) 還是始終保持 (persistent)。默認選擇? persistent。 set route 修改路由參數。時間值可以表示?天 (d)、小時 (h)、分鐘 (m) 及秒 (s)。例如,2d 表示兩天。 語法 set route [prefix=]IPv6Address/Integer [[interface=]String][[nexthop=]IPv6Address] [[siteprefixlength=]Integer][[metric=]Integer] [publish=]{no | yes | immortal}][[validlifetime=]{Integer | infinite}][[preferredlifetime=]{Integer | infinite}][[store=]{active | persistent}] 參數 [prefix=]IPv6Address/Integer 必需。指定要修改的路由的字首 (IPv6Address) 和字首長度 (Integer)。 [[interface=]String] 指定介面名稱或索引。 [[nexthop=]IPv6Address] 指定閘道位址(如果字首不在鏈結中)。 [[siteprefixlength=]Integer] 指定整個站點的字首長度(如果字首不在鏈結中)。 [[metric=]Integer] 指定路由標記。 [[publish=]{no | yes | immortal}] 指定路由在“路由通告”中是通知 (yes)、在無限生命周期內通知 (immortal) 還是不通知 (no)。默認選擇? no。 [[validlifetime=]{Integer | infinite}] 指定路由有效的生存周期。預設值? infinite。 [[preferredlifetime=]{Integer | infinite}] 指定首選路由的生存周期。預設值? infinite。 [[store=]{active | persistent}] 指定更改是否僅持續到下次?動 (active) 還是始終保持 (persistent)。默認選擇? persistent。 示例 本示例命令在名?“Internet”的介面上設置了一個路由。該路由的字首是 3FFE::,長度? 16 位。nexthop= 參數定義的閘道地址? FE80::1。 set route 3FFE::/16 "Internet" FE80::1 set state ?用或禁用 IPv4 相容性。所有參數的預設值都是“禁用”。 語法 set state [[v4compat=](enabled | disabled | default)] 參數 [[v4compat=](enabled | disabled | default)] 指定是否創建 IPv4 相容介面。要禁用並刪除 IPv4 相容介面,請指定 default。要禁用 IPv4 相容介面但不刪除它們,請指定 disabled。 示例 第一個示例命令禁用了 IPv4 相容位址,並刪除了此前的任何現有介面。第二個命令示例?用了 IPv4 相容地址。 set state default set state v4compat=enabled show address 顯示所有 IPv6 位址或指定介面上的所有位址。 語法 show address [[interface=]String] [[level=]{normal | verbose}][[store=]{active | persistent}] 參數 [[interface=]String] 指定介面名稱或索引。 [[level=]{normal | verbose}] 指定每個介面顯示一行資訊 (normal) 還是同時顯示其他資訊 (verbose)。當未指定介面時,默認選擇? normal。當指定介面時,默認選擇? verbose。 [[store=]{active | persistent}] 指定是顯示活動 (active) 位址還是持久性 (persistent) 地址。默認選擇? active。 show bindingcacheentries 顯示所有的綁定緩存項。 語法 show bindingcacheentries show destinationcache 顯示目標緩存項。如果指定了介面,則僅顯示該介面上的緩存。如果同時指定了位址,則僅顯示該目標的緩存項。 語法 show destinationcache [[interface=]String] [[address=]IPv6Address] 參數 [[interface=]String] 指定介面名稱或索引。 [[address=]IPv6Address] 指定目標位址。 show dns 顯示指定介面或所有介面的 DNS 伺服器配置。 語法 show dns [[interface=]String] 參數 [[interface=]String] 按名稱指定要顯示其已配置的 DNS 伺服器 IPv6 位址的介面。如果未指定介面,將顯示所有介面的伺服器。 示例 本示例命令將顯示在“Local Area Connection”介面上配置的 DNS 伺服器 IPv6 位址。 show dns "Local Area Connection" show global 顯示全局配置參數。 語法 show global [[store=]{active | persistent}] 參數 [[store=]{active | persistent}] 指定是顯示活動 (active) 還是持久性 (persistent) 的資訊。默認選擇? active。 show interface 顯示有關所有介面或有關指定介面的資訊。 語法 show interface [[interface=]String] [[level=]{normal | verbose}][[store=]{active | persistent}] 參數 [[interface=]String] 指定介面名稱或索引。 [[level=]{normal | verbose}] 指定每個介面顯示一行資訊 (normal) 還是同時顯示其他資訊 (verbose)。當未指定介面時,默認選擇? normal。當指定介面時,默認選擇? verbose。 [[store=]{active | persistent}] 指定是顯示活動 (active) 介面還是持久性 (persistent) 介面。默認選擇? active。 show joins 顯示所有的 IPv6 多播位址或指定介面上的所有多播位址。 語法 show joins [[interface=]String] [[level=]{normal | verbose}] 參數 [[interface=]String] 指定介面名稱或索引。 [[level=]{normal | verbose}] 指定每個介面顯示一行資訊 (normal) 還是同時顯示其他資訊 (verbose)。當未指定介面時,默認選擇? normal。當指定介面時,默認選擇? verbose。 show mobility 顯示移動性配置參數。 語法 show mobility [[store=]{active | persistent}] 參數 [[store=]{active | persistent}] 指定是顯示活動 (active) 還是持久性 (persistent) 的資訊。默認選擇? active。 show neighbors 顯示鄰居緩存項。如果指定了介面,則僅顯示該介面上的緩存。如果同時指定了位址,則僅顯示該鄰居緩存項。 語法 show neighbors [[interface=]String] [[address=]IPv6Address] 參數 [[interface=]String] 指定介面名稱或索引。 [[address=]IPv6Address] 指定鄰居地址。 show prefixpolicy 顯示在源和目標位址選擇中使用的字首策略表項。 語法 show prefixpolicy [[store=]{active | persistent}] 參數 [[store=]{active | persistent}] 指定是顯示活動 (active) 還是持久性 (persistent) 的資訊。默認選擇? active。 show privacy 顯示隱私配置參數。 語法 show privacy [[store=]{active | persistent}] 參數 [[store=]{active | persistent}] 指定是顯示活動 (active) 還是持久性 (persistent) 的資訊。默認選擇? active。 show routes 顯示路由表項。 語法 show routes [[level=]{normal | verbose}][[store=]{active | persistent}] 參數 [[level=]{normal | verbose}] 指定是僅顯示正常路由 (normal) 還是用於環回的路由 (verbose)。默認選擇? normal。 [[store=]{active | persistent}] 指定是顯示活動 (active) 路由還是持久性 (persistent) 路由。默認選擇? active。 show siteprefixes 顯示站點字首表。 語法 show siteprefixes uninstall 卸載 IPv6。 語法 uninstall Netsh 介面 IPv6 6to4 您可以在 netsh interface IPv6 6to4 環境中使用以下命令來顯示 6to4 主機或 6to4 路由器上的 6to4 服務配置,或配置該服務。關於使用 6to4 服務的詳細資訊,請參閱在 Internet (6to4) 不同站點的節點之間的 IPv6 通訊。 有關 Netsh 的詳細資訊,請參閱 Netsh 概述。 set interface 在介面上配置 6to4 服務。 語法 set interface [name=] InterfaceName [[routing=] {enabled | disabled | default}] 參數 [name =] InterfaceName 必需。指定希望設置 6to4 服務配置的介面名稱。InterfaceName 參數必須匹配在“網路連接”中所指定的介面名稱。如果 InterfaceName 中包含空格,則必須將其包含在引號中。 [[routing=] {enabled | disabled | default}] 指定在該介面上收到的 6to4 資料包的轉發是被允許、被禁用,或者將它設置?預設值。 注釋 該命令允許、禁用或設置?指定介面上 6to4 服務的路由行?預設值。 用於 routing= 參數的默認設置是 enabled,如果使用“Internet 連接共用 (ICS)”,它?用專用介面上的路由。 show interface 顯示所有介面或指定介面上的 6to4 服務路由配置。 語法 show interface [[name=] InterfaceName] 參數 [[name=] InterfaceName] 指定希望顯示的 6to4 服務配置的介面的名稱。InterfaceName 參數必須匹配在“網路連接”中所指定的介面名稱。如果 InterfaceName 中包含空格,則必須將其包含在引號中。 注釋 如果不指定介面名稱,則顯示所有介面的 6to4 配置。 set relay ? 6to4 服務配置 6to4 中繼路由器名稱。另外,指定解析名稱的時間間隔和用於 6to4 服務的中繼元件的狀態。 語法 set relay [[name=] {RelayDNSName | default}] [[state=] {enabled | disabled | automatic | default}] [[interval=] {ResInterval | default}] 參數 [[name=] {RelayDNSName | default}] 可以在 Ipv4 Internet (RelayDNSName) 上指定 6to4 中繼路由器的完全合格的功能變數名稱 (FQDN),也可以將中繼名稱設置? 6to4.ipv6.microsoft.com 的預設值 (default)。 [[state=] {enabled | disabled | automatic | default}] 指定 6to4 服務中繼元件的狀態是“?用”、“禁用”、“配置了公用 IPv4 位址時自動?用”,還是設置?其預設值。 [[interval=] {ResInterval | default}] 以分鐘?單位指定解析中繼路由器名稱的頻率 (ResInterval),或將該解析間隔設?其默認的 1440 分鐘 (default)。 注釋 6to4 中繼路由器是在 IPv4 Internet 和 6bone(Internet 的本地 IPv6 部分)之間提供訪問點的路由器。?了從 6to4 路由器訪問 6bone 資源,6to4 路由器將用 IPv4 標頭封裝 6to4 通信,並將其發送到 6to4 中繼路由器的 IPv4 地址。6to4 中繼路由器刪除 IPv4 標頭,並將通信轉發到 6bone。對於返回通信,6to4 中繼路由器封裝 IPv6 通信,並將其發送到 6to4 主機站點上的 6to4 路由器。 6to4 中繼路由器的默認名稱是 6to4.ipv6.microsoft.com。 默認狀態是 automatic,當公用 IPv4 位址被指派給任意介面時,這將允許本地 IPv6 通信到中繼路由器的轉發。 默認解析間隔是 1440 分鐘(每天一次)。 show relay 顯示 6to4 服務的中繼路由器配置。 語法 show relay set routing 在由 6to4 路由器發送的“路由器通告”中設置路由狀態和站點本地位址字首的內容。 語法 set routing [[routing=] {enabled | disabled | automatic | default}] [[sitelocals=] {enabled | disabled | default}] 參數 [[routing=] {enabled | disabled | automatic | default}] 指定 6to4 路由器上的路由狀態是“?用”、“禁用”、“?用了 Internet 連接共用時自動?用”,還是設?其預設值。 [[sitelocals=] {enabled | disabled | default}] 指定是?用、禁用站點本地位址字首以及 6to4 位址字首的通知,還是設?其預設值。 注釋 routing= 參數的默認設置是 automatic,在使用 ICS 時,該設置將?用專用介面上的路由。 用於 sitelocals= 參數的默認設置是 enabled,在專用介面上配置了站點本地位址時該設置將?用站點本地字首的通知。 show routing 顯示 6to4 服務的路由配置。 語法 show routing set state 配置 6to4 服務的狀態。 語法 set state [[state=] {enabled | disabled | default}] [[undo] {enabled | disabled | default}] [[6over4=] {enabled | disabled | default}] 參數 [[state=] {enabled | disabled | default}] 指定 6to4 服務的狀態是?用、禁用,還是被設置?其預設值。 [[undo] {enabled | disabled | default}] 指定是?用、禁用在停止 6to4 服務時撤銷該服務執行的所有自動配置,還是設置?其預設值。 注釋 state= 參數的默認設置是 enabled,這將?用 6to4 服務。 undo 參數的默認設置是 enabled,當 6to4 服務被停止時,該設置將反轉由 6to4 服務執行的所有自動配置。 show state 顯示服務名稱。 語法 show state reset 重新設置 6to4 服務。 語法 reset Netsh interface ipv6 isatap 站點內自動隧道定址協定 (ISATAP) 是用於 IPv4 站點內 IPv6/IPv4 節點之間通信的地址指派和隧道機制。這在 Internet 草案“Intra-Site Automatic Tunnel Addressing Protocol (ISATAP)”(draft-ietf-ngtrans-isatap-00.txt) 中有描述。可以使用以下命令配置 ISATAP 路由器。 set router 指定站點內自動隧道定址協定 (ISATAP) 路由器資訊,包括路由器名稱、狀態以及解析間隔。 語法 set router [[name=]{String | default}] [[state=]{Enabled | Disabled | Default}] [[interval]=Integer] 參數 [[name=]{String | default}] 指定是否使用字串來命名路由器。如果指定了 default,系統將恢復使用默認名稱。 [[state=]{Enabled | Disabled | Default}] 指定 ISATAP 路由器是否中繼子網間的資料包。 [[interval]=Integer] 以分鐘?單位指定路由器解析間隔。默認間隔? 1440 分鐘(24 小時)。 示例 以下示例命令將路由器名稱設? isatap,?用該路由器,將其解析間隔設? 120 分鐘: set router isatap enabled 120 show router 顯示 ISATAP 路由器的配置資訊。 語法 show router 注釋 本命令將顯示路由器的名稱、中繼狀態以及解析間隔。台灣災難都是事後算帳 無人飛行載具(Unmanned Aerial Vehicle,UAV)為什麼沒大量應用於救災行列 |
conundrum
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
使用netsh.exe配置TCP/IP http://www.cnfan.net/microsoft/winsystem/2005_07_20_875.htm 你知道netsh.exe能?你做些什?嗎?如果不知道的話就請跟我一起往下看吧。 首先,它可以顯示你TCP/IP協定的相關設置。在命令提示窗口(CMD.EXE)裏輸入下列命令: netsh interface ip show config 你還可以用它來更改電腦的IP位址或者配置TCP/IP的其他相關屬性。例如,你想?電腦的“本地連接”指定一個靜態的IP位址:192.168.0.100,設置其子網路遮罩?55.255.255.0,並指定默認閘道?192.168.0.1,你只需要在命令提示窗口裏輸入下列命令就可以了: netsh interface ip set address name="Local Area Connection" static 192.168.0.100 255.255.255.0 192.168.0.1 1 (注意:這是一條完整的命令,輸入的時候請不要換行。) 如果你有一台筆記本電腦,而且你需要在兩個以上不同的地方接入網路(並且每個網路都需要使用靜態IP地址),那?你也可以使用netsh.exe來快速地切換TCP/IP設置,以適應不同網路的需要。ntesh.exe可以把不同的TCP/IP設置導出成不同的配置文件,然後在需要的時候導入配置文件來更改相應的設置。 例如,現在你的筆記本接入了網路1,並且已經做好了相應的網路設置。這時你可以在命令提示窗口輸入: netsh -c interface dump > c:\location1.txt 通過這條命令把相應的TCP/IP設置導出至c:\下檔案名?location1.txt的文字檔案。以此類推,你可以把不同網路環境的設置導出到不同的配置文件中。在需要接入不同的網路中時,你只需要使用下面這條命令就可以了: netsh -f c:\location1.txt(或者:netsh -f c:\location2.txt) 除此之外,你還可以通過netsh.exe來配置網路適配器,讓它從DHCP伺服器自動獲得IP位址。命令如下: netsh interface ip set address "Local Area Connection" dhcp 還可以進行WINS配置: netsh interface ip set wins "Local Area Connection" static 192.168.0.200 當然,只要你想,你還可以通過netsh.exe使網路適配器動態獲得DNS設置: netsh interface ip set dns "Local Area Connection" dhcp 現在你知道了吧,netsh.exe是一個很有用的自定義TCP/IP設置的工具。台灣災難都是事後算帳 無人飛行載具(Unmanned Aerial Vehicle,UAV)為什麼沒大量應用於救災行列 |
conundrum
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
讓GHOST後的電腦自動修正電腦名與IP位址 http://www.cnblogs.com/zhenyulu/archive/2004/09/03/39156.aspx 一、問題提出 當上實驗中心主任後的一個棘手的問題就是機房管理。機房不大,只有60多台電腦,而且已經裝上了海光硬碟保護卡豪華版,可以直接網路GHOST硬碟。只要安裝好一台電腦,就可以在6個小時左右將40G硬碟資訊傳遍每一台電腦。 雖然是一個小小的實驗中心,也要?大家上機服務,什?等級考試、財務會計、外貿類比、軟體發展樣樣具全。這樣,在40G硬碟中裝了6個作業系統(DOS、Win 98、Win 2003 Server、Win 2000 Server、WinXP、Win 2000 Server(英文版MCSE用))。在與補丁和病毒做了一番鬥爭後,剩下的問題就是自動更新IP地址與電腦名。機房中的每台機器都有一個編號,機器的IP分配也與編號相關。海光藍卡雖然提供自動修改IP的功能,但對Server版的作業系統不起作用(修改完後,系統就癱瘓了),對非Server版的作業系統雖然起作用,但IP位址分配是隨機的,如果想人?定制,必須自己建立MAC地址與IP地址的映射表。總之,使用起來非常不方便,何況還沒法對NT Server修改IP呢。打電話諮詢海光公司,回話是:你用的保護卡不具備修改NT Server IP地址的功能,我們這裏的最新?品是MAX版,可以解決你的問題。這不是又要從兜裏掏銀子嗎!還是自己動手解決吧。 二、解決辦法 一開始,我使用DHCP動態分配IP,對每台機器保留一固定IP地址,但由於所有的機器都是克隆出來的,機器名完全一樣,每次?機都報有重名電腦存在,還影響了網上鄰居的使用。最後一生氣,乾脆自己編一個自動修改機器名與IP地址的程式。 考查了一下,可以使用Windows Script或是WinBatch實現,不過需要在機器上安裝這些軟體,似乎有些大材小用。最後決定使用Delphi自己編寫一個自動修改IP的程式。這樣,借助海光藍卡上自動修改IP的功能(說是自動修改IP,經我研究,實際上就是解開硬碟保護,自動將每個系統重新?動一下,在?動的過程中,海光自己的驅動程式完成修改工作。),實現自己修改IP。具體方法就是,不再安裝海光自動修改IP的程式,改成自己的程式,讓系統在第一次?動的時候自動修正IP和電腦名,並重新?動機器。 說幹就幹,首先將所有機器號與MAC映射表存儲成Access資料庫,並將IP位址設置?自動獲取DHCP,防止?機時衝突。然後在Delphi中編寫如下程式: unit UpdateIP; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, NB30, StdCtrls, DB, ADODB; type TfrmUpdateIPAddress = class(TForm) adoCntAccess: TADOConnection; adoDSMacAddress: TADODataSet; procedure adoCntAccessBeforeConnect(Sender: TObject); procedure FormShow(Sender: TObject); private { Private declarations } public { Public declarations } end; var frmUpdateIPAddress: TfrmUpdateIPAddress; implementation {$R *.dfm} //============================================================ // 設置資料庫路徑 //============================================================ procedure TfrmUpdateIPAddress.adoCntAccessBeforeConnect(Sender: TObject); begin adoCntAccess.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Password="";' 'User ID=Admin;Data Source=' ExtractFilePath(Application.ExeName) '\MacData.mdb;Mode=Share Deny None;Extended Properties=""'; end; //============================================================ // 獲取電腦的 MAC 位址 //============================================================ function NBGetAdapterAddress(a :Integer) : string; var NC : TNCB; ADAPTE : TADAPTERSTATUS; LANAENU : TLANAENUM; intId : Integer; cR : Char; strTem : string; begin Result := ''; try ZeroMemory(@NC, SizeOf(NC)); NC.ncb_command := Chr(NCBENUM); cR := NetBios(@NC); //Reissue enum command NC.ncb_buffer := @LANAENU; NC.ncb_length := SizeOf(LANAENU); cR := NetBios(@NC); if Ord(cR) <> 0 then exit; ZeroMemory(@NC, SizeOf(NC)); NC.ncb_command := Chr(NCBRESET); NC.ncb_lana_num := LANAENU.lana[a]; cR := NetBios(@NC); if Ord(cR) <> 0 then exit; ZeroMemory(@NC, SizeOf(NC)); NC.ncb_command := Chr(NCBASTAT); NC.ncb_lana_num := LANAENU.lana[a]; StrPCopy(NC.ncb_callname, '*'); NC.ncb_buffer := @ADAPTE; NC.ncb_length := SizeOf(ADAPTE); cR := NetBios(@NC); strTem := ''; for intId := 0 To 5 do strTem := strTem InttoHex(Integer(ADAPTE.adapter_address[intId]), 2); Result := strTem; finally end; end; //============================================================ // 設置電腦名 //============================================================ function SetComputerName(AComputerName: string): Boolean; var ComputerName: array[0..MAX_COMPUTERNAME_LENGTH 1] of Char; begin StrPCopy(ComputerName, AComputerName); Result := Windows.SetComputerName(ComputerName); end; //============================================================ // ?動時自動修改IP位址以及電腦名 //============================================================ procedure TfrmUpdateIPAddress.FormShow(Sender: TObject); var sMac, sNum, sComputerName, BatchFileName: string; ProcessInfo: TProcessInformation; StartUpInfo: TStartupInfo; begin sMac := NBGetAdapterAddress(0); AdoCntAccess.Connected := True; adoDSMacAddress.Close; adoDSMacAddress.Parameters.ParamByName('mac').Value := sMac; adoDSMacAddress.Open; if adoDSMacAddress.RecordCount = 0 then Application.Terminate; sNum := Trim(adoDSMacAddress.FieldByName('ComputerID').Value); //設置電腦名 sComputerName := 'Stu_' sNum; if not SetComputerName(sComputerName) then begin ShowMessage('電腦名沒有設置成功!'); Application.Terminate; end; //設置IP地址、DNS等 BatchFileName := ExtractFilePath(ParamStr(0)) 'AutoUpdate.bat ' sNum; StartUpInfo.dwFlags := STARTF_USESHOWWINDOW; StartUpInfo.wShowWindow := SW_Hide; if CreateProcess(nil, PChar(BatchFileName), nil, nil, False, IDLE_PRIORITY_CLASS, nil, nil, StartUpInfo, ProcessInfo) then begin CloseHandle(ProcessInfo.hThread); CloseHandle(ProcessInfo.hProcess); end; Application.Terminate; end; end. 該程式首先獲取當前機器的MAC地址,然後從Access表中檢索機器號,並根據機器號生成機器名“Stu_ 機器號”。在修改完機器名後,自動?動一個外部批次處理(在這裏是一個BAT文件),進行挂參數的批次處理調用,實現修改IP地址工作。如果有人問?什?要調用批次處理的話,實際上我想將系統做成自刪除的系統,程式執行完就將自己刪除的幹幹靜靜,不留任何痕?,這在後面再討論。 批次檔案的內容如下: @ECHO OFF rem 修改IP地址、子網路遮罩、閘道 cmd /c netsh interface ip set address name="本地連接" source=static addr=10.16.19.%1 mask=255.255.255.0 gateway=10.16.19.254 gwmetric=1 rem 修改DNS cmd /c netsh interface ip set dns name="本地連接" source=static addr=210.31.198.65 rem 刪除放在?動組中的快捷方式 del /q "C:\Documents and Settings\All Users\「開始」功能表\程式\?動\AutoUpdate.*" rem 調用重?機的批次檔案 Restart.bat 從文件中可以看出,?了讓系統在第一次運行時自動修改IP位址,在開始功能表的?動中創建了一個快捷方式,自動調用我的程式,程式執行完後,將?動功能表中快捷方式刪除,然後重新?動。至於自刪除的功能,這裏我沒有放上來,感興趣的話,可以在Google中檢索“Delphi 自己 刪除”,能找到很多資料。 下面說說重新?動,Windows 98、Windows Me重新?動很簡單,只要一條命令就可以了: rundll32.exe shell32.dll,SHExitWindowsEx n 其中最後面的n表示: 0 - LOGOFF 1 - SHUTDOWN 2 - REBOOT 4 - FORCE 8 - POWEROFF Window XP的重?不同於98,需要使用 shutdown 命令,具體可以參考手冊。 最困難的是NT 2000的重?,使用上面的方法都不起作用。必須通過多條命令實現。下面看看NT 2000重?的批次檔案: @ECHO OFF & cd/d %temp% & echo [version] > {out}.inf (set inf=InstallHinfSection DefaultInstall) echo signature=$chicago$ >> {out}.inf echo [defaultinstall] >> {out}.inf rundll32 setupapi,%inf% 1 %temp%\{out}.inf del {out}.inf 有些亂,但很管用。 好了,所有的準備工作都已經具備,下面是實施辦法: 1、首先需要準備一台機器做DHCP伺服器,並且配置好IP位址池,但這個IP位址池不要與你想分配的IP地址相重復,否則會有不少麻煩。比如你想給克隆後的機器分配從10.16.19.1到10.16.19.100的IP位址段,那?你可以給你的DHCP伺服器分配一個IP位址?192.168.1.1,並且配置可分配位址池?192.168.1.2到192.168.1.101,最好不要將租期設置的很長,否則可能出現IP不夠分配的問題,或者在每次操作時清空一下租約。 2、安裝用戶端機器。 3、將編譯好的可執行文件以及兩個批次檔案還有一個Access資料庫文件拷貝到一個目錄中; 4、在目錄“C:\Documents and Settings\All Users\「開始」功能表\程式\?動\”中建立一個指向該可執行文件的快捷方式(作業系統不同,目錄可能也各不相同); 5、將用戶端機器的IP位址設置?自動獲取。 6、關閉電腦,使用海光藍卡克隆硬碟; 7、從海光藍卡上執行“分配IP地址”功能,所有機器自動重?,當機器?動起來後,首先會自動申請一IP地址,比如說192.168.1.2,並且所有機器IP不會衝突,從而避免因IP地址衝突造成無法正常獲取MAC地址的問題出現。然後自己編寫的程式將被調用,並完成自動修改IP,設置機器名稱,重新?動的過程。這樣,IP位址與電腦名就自動修正好了。(沒有海光藍卡的用戶也可以通過手動重?機實現自動修正功能) 三、目前還存在的一些問題 目前還沒有完全解決NT Server在克隆中的問題,比如說NT內部會有一唯一標識號,在克隆過程中也被複製了,而且上面的方法不能修改NT Server的AD功能變數名稱。要想解決這個問題,需要從安裝著手。Windows NT 2000的安裝說明中有這方面的解決辦法。如果哪位元需要精益求精的話,可以找這方面的參考資料看看 ////////////////////////////////////////////// XP中分?ComputerName與HostName兩種,分別存儲在兩個不同的地方。在NT4SP5中修改HostName與ComputerName的方法如下: How to set local machine HostName from your program ? Follow this steps : 1. Open registry on the HKEY_LOCAL_MACHINE 2. Find the subKey = SYSTEM\CurrentControlSet\Services\TcpIp\Parameters 3. Set data for the value "HostName" 4. Find the subKey = SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName 5. Set data for the value "ComputerName" 6. Reboot your PC and HostName will be set. WARNING: Modify registry incorrect can cause serious, system-wide problems . Use this at your own risk ////////////////////////////////////////// 用netsh那個有一個缺點是不能指定兩個DNS解析,比如有一個主DNS,還有一個輔助DNS這個辦法不行了,要用到註冊表寫入的辦法還成。哪位能提供一下思路? 我把我作的一些方法寫上來和大家分享: //下面用於通過程式得到網卡的MAC位址 //其中參數A是0,表示第一塊網卡 Function NBGetAdapterAddress(a:Integer) : String; Var NCB : TNCB; // Netbios control block //NetBios控制塊 ADAPTER : TADAPTERSTATUS; // Netbios adapter status//取網卡狀態 LANAENUM : TLANAENUM; // Netbios lana intIdx : Integer; // Temporary work value//臨時變數 cRC : Char; // Netbios return code//NetBios返回值 strTemp : String; // Temporary string//臨時變數 Begin Result := ''; Try ZeroMemory(@NCB, SizeOf(NCB)); NCB.ncb_command := Chr(NCBENUM); cRC := NetBios(@NCB); NCB.ncb_buffer := @LANAENUM; NCB.ncb_length := SizeOf(LANAENUM); cRC := NetBios(@NCB); If Ord(cRC)<>0 Then exit; ZeroMemory(@NCB, SizeOf(NCB)); NCB.ncb_command := Chr(NCBRESET); NCB.ncb_lana_num := LANAENUM.lana[a]; cRC := NetBios(@NCB); If Ord(cRC)<>0 Then exit; ZeroMemory(@NCB, SizeOf(NCB)); NCB.ncb_command := Chr(NCBASTAT); NCB.ncb_lana_num := LANAENUM.lana[a]; StrPCopy(NCB.ncb_callname, '*'); NCB.ncb_buffer := @ADAPTER; NCB.ncb_length := SizeOf(ADAPTER); cRC := NetBios(@NCB); strTemp := ''; For intIdx := 0 To 4 Do strTemp := strTemp InttoHex(Integer(ADAPTER.adapter_address[intIdx]),2) '-'; //黃海?了加上-才想出的辦法 strTemp := strTemp InttoHex(Integer(ADAPTER.adapter_address[5]),2); Result := strTemp; Finally End; End; procedure TForm1.FormCreate(Sender: TObject); begin //取得第一塊網卡的MAC位址 Label5.Caption:=NBGetAdapterAddress(0); //設置並讀取資料庫中IP資訊 ADOConnection1.ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;Password="";' 'User ID=Admin;Data Source=' ExtractFilePath(Application.ExeName) '\MacData.mdb;Mode=Share Deny None;Persist Security Info=True;Extended Properties=""'; ADOQuery1.Connection := ADOConnection1; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select *from IP_MAC_TABLE where MAC = :sh'); ADOQuery1.Parameters.ParamByName('sh').Value:=NBGetAdapterAddress(0); ADOQuery1.Open; Label6.Caption:=ADOQuery1.fieldByName('IP').Value; Label7.Caption:=ADOQuery1.fieldByName('COMPUTER_NAME').Value; Label8.Caption:=ADOQuery1.fieldByName('USER').Value; Label11.Caption:=ADOQuery1.fieldByName('GATEWAY').Value; Label12.Caption:=ADOQuery1.fieldByName('subnetmask').Value; Label14.Caption:=ADOQuery1.fieldByName('dns').Value; ADOQuery1.Close; end; procedure WriteHostName(HostName:string); var Reg:Tregistry; begin //第一步 Reg:=Tregistry.Create;{創建Tregistry物件的實例} Reg.Rootkey:= HKEY_LOCAL_MACHINE;{設置根鍵名稱} Reg.OpenKey('SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName',true); Reg.WriteString ('ComputerName',HostName); Reg.CloseKey;{將更改內容寫入註冊表並關閉} Reg.Free;{釋放物件} //第二步 Reg:=Tregistry.Create;{創建Tregistry物件的實例} Reg.Rootkey:= HKEY_LOCAL_MACHINE;{設置根鍵名稱} Reg.OpenKey('SYSTEM\CurrentControlSet\Services\Tcpip\Parameters',true); Reg.WriteString ('Hostname',HostName); Reg.CloseKey; Reg.Free;{釋放物件} //第三步 Reg:=Tregistry.Create;{創建Tregistry物件的實例} Reg.Rootkey:= HKEY_LOCAL_MACHINE;{設置根鍵名稱} Reg.OpenKey('SYSTEM\CurrentControlSet\Services\Tcpip\Parameters',true); Reg.WriteString ('NV Hostname',HostName); Reg.CloseKey;{將更改內容寫入註冊表並關閉} Reg.Free;{釋放物件} end; //////////////////////////////////////////// [原創] Ghost 以後自動修改 機器名,IP地址! ————————————————————————————————————————————————————————————————————————————------ @echo off :::-------------------------------------------------------------------------- :::::請你在使用把[MacAddress] 欄位下 改?你自己的機器配置::::::::: :::::此文件,只在win2k 專業版下 測試過::::::::::::: :::::帶有“::::” 後面的語句? 注釋:::::::::: :::::因?會修改你的機器配置。請在測試機器上使用!::::: :::--------------------------------------------------------------------- @cls :::清屏 @echo [ComputerName] [MacAddress] [IPAddress] [CS-CDKey] >config.cfg @echo Nh005 00-11-5B-CF-C8-12 192.168.0.5 3245164654063 >>config.cfg @echo Nh006 00-11-5B-BD-2F-E4 192.168.0.6 3385636230783 >>config.cfg @echo Nh007 00-11-5B-B3-F0-86 192.168.0.7 2030698167302 >>config.cfg @echo Nh008 00-11-5B-C8-C8-E1 192.168.0.8 7149496192146 >>config.cfg :::::::添加你自己的機器配置 ::::獲取機器的TCP/IP 配置 if exist ipconfig.txt del ipconfig.txt ipconfig /all >ipconfig.txt :::分離出機器的物理位址,並保存到 ( phyaddr.txt) 文件中 if exist phyaddr.txt del phyaddr.txt find "Physical Address" ipconfig.txt >phyaddr.txt ::::從(c:\phyaddr.txt)文件中取得物理位址字串,並賦給變數"MacAddress" for /f "skip=2 tokens=12" %%M in (phyaddr.txt) do set strMac=%%M :::顯示物理位址字串 @echo %strMac% ::::以變數"strMac"?關鍵字搜索(Config.cfg)中相同的字串行,並保存到(ComputerCfg.txt) find "%strMac%" Config.cfg >ComputerCfg.txt ::::顯示機器名. (從"ComputerCfg.txt"中分離出 機器名欄位,並賦給變數"ComputerName") for /f "skip=2 tokens=1" %%N in (ComputerCfg.txt) do set ComputerName=%%N @echo %ComputerName% ::::顯示IP位址. (從"ComputerCfg.txt"中分離出 IP位址欄位,並賦給變數"IPAddress") for /f "skip=2 tokens=3" %%I in (ComputerCfg.txt) do set IPAddress=%%I @echo %IPAddress% ::::顯示網卡MAC位址.(從"ComputerCfg.txt"中分離出 MAC位址欄位,並賦給變數"MacAddress") for /f "skip=2 tokens=2" %%M in (ComputerCfg.txt) do set MacAddress=%%M @echo %MacAddress% for /f "skip=2 tokens=4" %%C in (ComputerCfg.txt) do set strCdkey=%%C @echo %strCdkey% ::::創建註冊表文件 @echo Windows Registry Editor Version 5.00 >ComputerName.reg @echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName] >>ComputerName.reg ::::用變數"%ComputerName%"去替換實際的機器名 @echo "ComputerName"="%ComputerName%" >>ComputerName.reg @echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] >>ComputerName.reg ::::用變數"%ComputerName%"去替換實際的機器名 @echo "NV Hostname"="%ComputerName%" >>ComputerName.reg @echo "Hostname"="%ComputerName%" >>ComputerName.reg ::::修改 CS-CDKEY 不用管它 @echo [HKEY_CURRENT_USER\Software\Valve\CounterStrike\Settings]>>ComputerName.reg @echo "Key"="%strCdkey%">>ComputerName.reg @echo [HKEY_USERS\S-1-5-21-839522115-507921405-2146800195-500\Software\Valve\CounterStrike\Settings]>>ComputerName.reg @echo "Key"="%strCdkey%">>ComputerName.reg ::::導入註冊表文件。用的時候把" :: " 去掉 regedit /s ComputerName.reg ::::修改IP 地址。用變數"%IPAddress%" 去替換實際的IP 地址 netsh interface ip set address name="本地連接" source=static addr=%IPAddress% mask=255.255.255.0 gateway=192.168.0.1 gwmetric=1 ::::重起機器批次處理! setlocal cd/d %temp% echo [version] > reboot.inf set inf=InstallHinfSection DefaultInstall echo signature=$chicago$ >> reboot.inf echo [defaultinstall] >> reboot.inf rundll32 setupapi,%inf% 1 %temp%\reboot.inf del reboot.inf c: cdcd %USERPROFILE%\「開始」功能表\程式\?動 del /q *.* ------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------ 把此內容 粘貼到 記事本裏。另存? “1。bat” 批次檔案。在做ghost 鏡像時 放到?動組裏! 有什?問題 請聯繫 : QQ:233002600//////////////////////////////////////////// 【BCB】【發表】更改IP、Mask、Gateway、DNS Address http://delphi.ktop.com.tw/topic.php?TOPIC_ID=78851 台灣災難都是事後算帳 無人飛行載具(Unmanned Aerial Vehicle,UAV)為什麼沒大量應用於救災行列 發表人 - conundrum 於 2005/09/26 14:38:55 |
conundrum
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
Windows下不重?機器程式修改IP的三種方法 http://www.pcdog.com/tech/html/200521/12200513787_1.htm Windows下程式修改IP的三種方法 以下討論的平臺依據是Window XP SP1, 不考慮Windows其他版本的相容性問題, 但對NT系列的系統, 理論上是通用的 . 方法一: 網卡重? 更改Windows網卡屬性選項中IP位址, 通過對比前後註冊表, 可以發現以下幾處發生變化 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{97EFDAD8-EB2D-4F40-9B07-0FCD706FCB6D}] "IPAddress" "SubnetMask" "DefaultGateway" "NameServer" [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\{97EFDAD8-EB2D-4F40-9B07-0FCD706FCB6D}\Parameters\Tcpip] "IPAddress" "SubnetMask" "DefaultGateway" [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\{97EFDAD8-EB2D-4F40-9B07-0FCD706FCB6D}] "IPAddress" "SubnetMask" "DefaultGateway" "NameServer" [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\{97EFDAD8-EB2D-4F40-9B07-0FCD706FCB6D}\Parameters\Tcpip] "IPAddress" "SubnetMask" "DefaultGateway" 其中{97EFDAD8-EB2D-4F40-9B07-0FCD706FCB6D}是網卡名稱(AdapterName), 不同的網卡, 不同的接入位置, 不同的接入的時間, 對應的值都不一樣, 它的值是第一次接入系統時, 由系統生成的GUID值. 此處CurrentControlSet實際是ControlSet001的別名. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{97EFDAD8-EB2D-4F40-9B07-0FCD706FCB6D}] "IPAddress" "SubnetMask" "DefaultGateway" "NameServer" 是主要的設置處. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\{97EFDAD8-EB2D-4F40-9B07-0FCD706FCB6D}\Parameters\Tcpip] "IPAddress" "SubnetMask" "DefaultGateway" 對一些服務有影響, 如不設置, 用netstat可以看到原來的IP位址仍處於監聽狀態(?). 但?了使設置生效, 還有很重要的一步, 即重?網卡. 更改網卡的配置, 一般而言需要重?網卡, 如 Linux系統, 只需運行 #ifconfig eth0 down #ifconfig eht0 up 就可以實現網卡的重?. Windows環境下的步驟與之類似: 先禁用本地連接(網卡), 再?用本地連接(網卡). 但沒有相應的命令或者直接的API. 所幸的是DDK提供一套設備安裝函數, 用於控制系統設備, 包括控制設備的狀態改變. /**************************************************************************************** Purpose: change state of the selected device Input : hDevInfo device info set pDeviceInfoData selected device info NewState one of enable/disable Output : TRUE for success, FALSE for failed ****************************************************************************************/ BOOL ChangeDeviceState(HDEVINFO hDevInfo, PSP_DEVINFO_DATA pDeviceInfoData, DWORD NewState) { SP_PROPCHANGE_PARAMS PropChangeParams = {sizeof(SP_CLASSINSTALL_HEADER)}; SP_DEVINSTALL_PARAMS devParams; if (!pDeviceInfoData) { return FALSE; } PropChangeParams.ClassInstallHeader.cbSize = sizeof(SP_CLASSINSTALL_HEADER); PropChangeParams.ClassInstallHeader.InstallFunction = DIF_PROPERTYCHANGE; PropChangeParams.Scope = DICS_FLAG_CONFIGSPECIFIC; PropChangeParams.StateChange = NewState; PropChangeParams.HwProfile = 0; if (!SetupDiSetClassInstallParams(hDevInfo,pDeviceInfoData, (SP_CLASSINSTALL_HEADER *)&PropChangeParams,sizeof(PropChangeParams)) || !SetupDiCallClassInstaller(DIF_PROPERTYCHANGE,hDevInfo,pDeviceInfoData)) { return FALSE; } reutrn TRUE; } /* hDevInfo如何得到***********************************************************/ m_hDevInfo = SetupDiGetClassDevs( (LPGUID) &GUID_DEVCLASS_NET, /* GUID_DEVCLASS_NET表示僅列出網路設備 */ NULL, this->m_hWnd, DIGCF_PRESENT); if (INVALID_HANDLE_VALUE == m_hDevInfo) { return FALSE; } /* pDeviceInfoData如何得到**************************************************/ k = 0; while (SetupDiEnumDeviceInfo(m_hDevInfo, k ,&DeviceInfoData)) { k ; if (CR_SUCCESS != CM_Get_DevNode_Status(&Status, &Problem, DeviceInfoData.DevInst,0)) { continue; } if ((Status & DN_NO_SHOW_IN_DM)) { continue; } if (GetRegistryProperty(m_hDevInfo, &DeviceInfoData, SPDRP_FRIENDLYNAME, &pBuffer, &Length)) { m_Adapter[adapter_num].index = k - 1; /* 當前網卡在設備資訊集中的索引 */ _tcscpy(m_Adapter[adapter_num].desc, pBuffer); /* 當前網卡 */ GetRegistryProperty(m_hDevInfo, &DeviceInfoData, SPDRP_DRIVER, &pBuffer, &Length); _tcscpy(m_Adapter[adapter_num].driver, pBuffer); adapter_num ; } } /* GetRegistryProperty是對SetupDiGetDeviceRegistryProperty封裝***************/ BOOL GetRegistryProperty(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, ULONG Property, LPTSTR* Buffer, PULONG Length) { while (!SetupDiGetDeviceRegistryProperty( DeviceInfoSet, DeviceInfoData, Property, NULL, (PBYTE)(*Buffer), *Length, Length )) { if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) { if (*(LPTSTR *)Buffer) LocalFree(*(LPTSTR *)Buffer); *Buffer = (LPTSTR)LocalAlloc(LPTR, *Length); }else { return FALSE; } } return TRUE; } /* m_Adapter的資料結構 */ typedef struct adapter_info_s { char name[NAME_LEN]; /* 內部設備名, UUID的字串形式 */ char desc[NAME_LEN]; /* 網卡描述 */ char driver[NAME_LEN]; /* 網卡在註冊表中的位置, 如{4D36E972-E325-11CE-BFC1-08002BE10318}\0011 實際完整的鍵名?System\\CurrentControlSet\\Control\\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0011 該鍵包含的內容與SetupDiGetDeviceRegistryProperty得到的設備屬性基本相同 如NetCfgInstanceId即?內部設備名 DriverDesc?設備描述 */ int index; }adapter_info_t; /***************************************************************************** 用何名稱區分不同的網卡 有如下名稱可供選擇 本地連接名, 這是系統使用的方法, 調用的是netman.dll中的未公開函數HrLanConnectionNameFromGuidOrPath(其原型筆者正在調試之中, 成功之後會另行撰文); 其實也可從註冊表中獲得HKLM\System\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\{97EFDAD8-EB2D-4F40-9B07-0FCD706FCB6D}\Connection\Name 網卡類型描述 設備友好名 它與網卡類型描述基本相同, 當存在同種類型的網卡, 它會加#n(n = 2, 3, 4...)以示區分 如本程式中筆者即以設備友好名區分網卡 *****************************************************************************/ /* 重?網卡的過程************************************************************/ k = pAdapter->GetCurSel(); /* m_Adapter[k]即當前網卡 */ if (SetupDiEnumDeviceInfo(m_hDevInfo, m_Adapter[k].index ,&DeviceInfoData)) { hCursor = SetCursor(LoadCursor(NULL, IDC_WAIT)); ChangeDeviceState(m_hDevInfo, &DeviceInfoData, DICS_DISABLE); /* 禁用網卡 */ ChangeDeviceState(m_hDevInfo, &DeviceInfoData, DICS_ENABLE); /* ?用網卡 */ /* 重?網卡, 一般情況下, 以下命令相當於前兩命令的組合. 但我仍建議使用前者 */ // ChangeDeviceState(m_hDevInfo, &DeviceInfoData, DICS_PROPCHANGE); SetCursor(hCursor); } /* 掃尾工作 */ SetupDiDestroyDeviceInfoList(m_hDevInfo); 總結: 通過網卡重?更改IP的方法有兩個步驟: 修改註冊表, 重?網卡. 重?網卡的全過程上面已作描述. 註冊表修改的內容?文中列出四個主要項, 如{97EFDAD8-EB2D-4F40-9B07-0FCD706FCB6D}的網卡名稱即是內部設備名, 在adapter結構中已給出. 整個註冊表修改的過程比較簡單, 本文不加?述. 方法二:未公開函數 Windows系統中, 更改Windows網卡屬性選項中IP位址, 可以即時使更改生效, 並且沒有重?網卡的過程. 系統自帶的netsh也能通過命令行或腳本文件的形式, 完成更改IP的功能時, 也不需要重?網卡 同時也有很多共用軟體, 可以實現同樣的功能, 常見IP地址更改軟體有IPFreeSet, IPChanger, IPProfile, IPHelp, IPSet, SNet等. 筆者通過分析netsh發現一個未公開函數, 即用netcfgx.dll封裝的dhcpcsvc.dll中DhcpNotifyConfigChange函數 具體的方法參見VCKB 25期 王駿先生的 "不重起Windows直接更改IP位址", 他得到的函數原型比我準確, 思路也很清晰. 分析上述共用軟體時, 發現其技術要點不外乎三種: 使用未公開函數, 調用netsh命令, 重?網卡硬體. 調用netsh命令的實質還是使用未公開函數 使用未公開函數的有: IPFreeSet, IPChanger 調用netsh命令的有 : IPHelp, IPSet. 兩者都是用Delphi開發的. 重?網卡硬體: IPSwitcher 速度比較: 因?netsh本身的實現是調用netcfgx.dll, netcfgx.dll封裝了對未公開函數的使用, 故效率相對較低. 在一台CPU:PIII500/RAM:256/XP的系統中, IPHelp需要6~7秒才能完成, 而IPFreeSet只需要1~2秒. 方法三:一卡多IP 除以上兩個方法外, 筆者再介紹一種方法. 無論是在Windows下還是在Linux下, 一塊網卡都可同時具有多個IP位址. 根據TCP/IP原理, 在網路層標識通信節點是IP地址, 在鏈路層上的則是MAC地址. 只要通過ARP, 將多個IP與一個MAC對應起來, 就可實現一網卡多IP(其實是一MAC多IP). 系統本身也有相應的設置選項, 如windows是通過TCP/IP屬性的高級選項添加的, Linux下可由ifconfig命令添加. iphlpapi提供AddIPAddress和DelIPAddress. 如果能先加入新的IP, 再去除原來的IP, 即可實現IP地址的更改. 具體內容參見我下篇文章"iphlpapi"的使用.台灣災難都是事後算帳 無人飛行載具(Unmanned Aerial Vehicle,UAV)為什麼沒大量應用於救災行列 |
conundrum
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
http://www.pczone.com.tw/vbb3/showthread.php?t=138393 @echo off Title=備份/復原 網路卡 TCP/IP 設定值 echo. echo ****** 備份/復原 網路卡 TCP/IP 設定值 ****** echo. echo 本程式可自動備份目前網路卡的IP位址及 echo. echo 相關設定,並可從備份檔立即恢復原有設定 echo. echo PCZONE 討論區 http://www.pczone.com.tw/ echo. echo 歡迎上PCZONE討論區參與討論 http://www.pczone.com.tw/ echo ********************************************************** echo. :Start echo 1. 備份網路卡 TCP/IP 設定 echo 2. 復原網路卡 TCP/IP 設定 echo 3. 離開 echo. SET Choice= SET /P Choice= 您要備份或者復原網路卡 TCP/IP 設定: IF NOT '%Choice%'=='' SET Choice=%Choice:~0,1% echo. IF /I '%Choice%'=='1' GOTO bak IF /I '%Choice%'=='2' GOTO rest IF /I '%Choice%'=='3' end echo "%Choice%" 選擇無效,請重新輸入: echo. GOTO Start :bak set file= echo. echo PS:若不輸入檔名及路徑則預設備份到 C:\TCPIP.BAK set /p file= 請輸入備份檔案名稱: if "%file%"=="" goto default goto dobak :default set file= echo. echo 若不輸入檔名及路徑則預設將備份到 C:\TCPIP.BAK set file=C:\TCPIP.BAK goto dobak :dobak netsh -c interface dump >%file% goto bakok :rest set file= echo. set /p file= 請輸入備份檔案的完整路徑及檔案名稱: if "%file%"=="" goto nofile if not exist %file% goto nofile2 goto dorest :dorest netsh -f %file% goto restok :nofile echo. echo 沒有指定備份檔案!請按任意鍵重新輸入! Pause>nul goto rest :nofile2 echo. echo 指定的備份檔案不存在!按任意鍵重新輸入! Pause>nul goto rest :restok echo. echo 復原成功!請按任意鍵離開! pause>nul goto end :bakok echo. echo 備份成功!目前備份檔名為 %file% ! echo 請按任意鍵離開! pause>nul goto end :end作者: pczonelon 可以試試 Net Profiles 這個軟體...很好用的...可以設很多組別 支援 NIC 及無線...但只可以使用在 XP...其它OS不可使用 ![]() |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |