<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Calendar lCal = Calendar.getInstance(); 
    String year = tod.substring(6);  //tod 是DD/MM/YYYY的格式的日期。
    String month = tod.substring(3,5);
     lCal.set(FormatFunctions.s2i(year), FormatFunctions.s2i(month), 1); 調(diào)用一個共用方法將字符串轉(zhuǎn)換成整型。
         lCal.add(Calendar.MONTH, 0);
         lCal.add(Calendar.DATE, -1);
          SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
          tod = formatter.format(lCal.getTime();
    posted @ 2005-10-14 14:56 rodney 閱讀(2271) | 評論 (0)編輯 收藏
     
    中文機(jī)的日期如果是1月2005 SELECT TO_CHAR(SYSDATE,'MONYYYY') FROM DUAL
    英文機(jī)的日期如果是1月2005會顯示成JAN2005.
    從上面可以看出oracle在格式轉(zhuǎn)換中用MON的格式是取某個月的單詞的前三個字符。但是在中文機(jī)上有從SQL中取出來是1?空格2005一共是占七個字符。而英文機(jī)上也是占七個字符。只是在顯示時的效果不一樣。中:1?空格2005,英文機(jī)上:JAN2005.
    posted @ 2005-10-14 14:43 rodney 閱讀(365) | 評論 (0)編輯 收藏
     

    如果有一個程序是這樣:(PB的源代碼)
    IF NOT IsNull(ld_from_date) AND NOT IsNull(ld_date) THEN
     ls_sql_where = ls_sql_where + &
     " Trunc(~"CITYNET_INTERFACE~".~"REQUESTED_PICKUP_DTM~") between TO_DATE('" + &
     String(ld_from_date, 'dd/mm/yyyy') + &
     "', 'dd/mm/yyyy') and TO_DATE('" + &
     String(ld_date, 'dd/mm/yyyy') + "', 'dd/mm/yyyy')" + " AND "
     ls_query_criteria = ls_query_criteria + " Trip Date between " + String(ld_from_date,'DD/MM/YYYY') + &
      " AND " + String(ld_date,'DD/MM/YYYY')
    END IF

    IF NOT IsNull(ld_from_date) AND IsNull(ld_date) THEN
     ls_sql_where = ls_sql_where + &
     " Trunc(~"CITYNET_INTERFACE~".~"REQUESTED_PICKUP_DTM~") >= TO_DATE('" + &
     String(ld_from_date, 'dd/mm/yyyy') + "', 'dd/mm/yyyy')" + " AND "
     ls_query_criteria = ls_query_criteria + " Trip Date >= " + String(ld_from_date,'DD/MM/YYYY')
    END IF

    IF IsNull(ld_from_date) AND NOT IsNull(ld_date) THEN
     ls_sql_where = ls_sql_where + &
     " Trunc(~"CITYNET_INTERFACE~".~"REQUESTED_PICKUP_DTM~") <= TO_DATE('" + &
     String(ld_date, 'dd/mm/yyyy') + "', 'dd/mm/yyyy')" + " AND "
     ls_query_criteria = ls_query_criteria + " Trip Date <= " + String(ld_date,'DD/MM/YYYY')
    END IF
    把上面的代碼用SQL的查詢語句來實(shí)行。
    這時我用到了一個between運(yùn)算符,這個運(yùn)算符會包括它后的兩個入?yún)ⅲ?BR>如:select table.A from table where table.A between 5 and 10.也就是說這時的條件A>=5 and A<= 10的記錄。

    posted @ 2005-10-11 13:52 rodney 閱讀(785) | 評論 (0)編輯 收藏
     
    我的report server是IBM產(chǎn)品,我通過URL傳遞參數(shù)時http://work-5:80/reports/rwservlet?mykeys2&desType=cache&desFormat=PDF&report=/data1/ifms/xmlreports/IF3050R.xml&printid=SANCP2&pgmID=IF3050R
    但在&變量名之后加了空格,結(jié)果report不能打印。然后我把URL中的每個空格都去除。可以了。當(dāng)我不知道URL為什么不能有空格,HTTP協(xié)議是怎么處理空格的。希望有哪位高手能給一個指點(diǎn)。
    posted @ 2005-10-11 10:45 rodney 閱讀(3419) | 評論 (3)編輯 收藏
     
    1. 配置系統(tǒng)管理(Admin Web Application)
    大多數(shù)商業(yè)化的J2EE服務(wù)器都提供一個功能強(qiáng)大的管理界面,且大都采用易于理解的Web應(yīng)用界面。Tomcat按照自己的方式,同樣提供一個成熟的管理工具,并且絲毫不遜于那些商業(yè)化的競爭對手。Tomcat的Admin Web Application最初在4.1版本時出現(xiàn),當(dāng)時的功能包括管理context、data source、user和group等。當(dāng)然也可以管理像初始化參數(shù),user、group、role的多種數(shù)據(jù)庫管理等。在后續(xù)的版本中,這些功能將得到很大的擴(kuò)展,但現(xiàn)有的功能已經(jīng)非常實(shí)用了。

    Admin Web Application被定義在自動部署文件:CATALINA_BASE/webapps/admin.xml 。
    (譯者注:CATALINA_BASE即tomcat安裝目錄下的server目錄)

    你必須編輯這個文件,以確定Context中的docBase參數(shù)是絕對路徑。也就是說,CATALINA_BASE/webapps/admin.xml 的路徑是絕對路徑。作為另外一種選擇,你也可以刪除這個自動部署文件,而在server.xml文件中建立一個Admin Web Application的context,效果是一樣的。你不能管理Admin Web Application這個應(yīng)用,換而言之,除了刪除CATALINA_BASE/webapps/admin.xml ,你可能什么都做不了。

    如果你使用UserDatabaseRealm(默認(rèn)),你將需要添加一個user以及一個role到CATALINA_BASE/conf/tomcat-users.xml 文件中。你編輯這個文件,添加一個名叫“admin”的role 到該文件中,如下:

    <role name="admin"/>

    你同樣需要有一個用戶,并且這個用戶的角色是“admin”。象存在的用戶那樣,添加一個用戶(改變密碼使其更加安全):

    <user name="admin" password="deep_dark_secret" roles="admin"/>

    當(dāng)你完成這些步驟后,請重新啟動Tomcat,訪問http://localhost:8080/admin,你將看到一個登錄界面。Admin Web Application采用基于容器管理的安全機(jī)制,并采用了Jakarta Struts框架。一旦你作為“admin”角色的用戶登錄管理界面,你將能夠使用這個管理界面配置Tomcat。

    2.配置應(yīng)用管理(Manager Web Application)
    Manager Web Application讓你通過一個比Admin Web Application更為簡單的用戶界面,執(zhí)行一些簡單的Web應(yīng)用任務(wù)。

    Manager Web Application被被定義在一個自動部署文件中:

    CATALINA_BASE/webapps/manager.xml 。

    你必須編輯這個文件,以確保context的docBase參數(shù)是絕對路徑,也就是說CATALINA_HOME/server/webapps/manager的絕對路徑。
    (譯者注:CATALINA_HOME即tomcat安裝目錄)

    如果你使用的是UserDatabaseRealm,那么你需要添加一個角色和一個用戶到CATALINA_BASE/conf/tomcat-users.xml文件中。接下來,編輯這個文件,添加一個名為“manager”的角色到該文件中:

    <role name=”manager”>

    你同樣需要有一個角色為“manager”的用戶。像已經(jīng)存在的用戶那樣,添加一個新用戶(改變密碼使其更加安全):

    <user name="manager" password="deep_dark_secret" roles="manager"/>

    然后重新啟動Tomcat,訪問http://localhost/manager/list,將看到一個很樸素的文本型管理界面,或者訪問http://localhost/manager/html/list,將看到一個HMTL的管理界面。不管是哪種方式都說明你的Manager Web Application現(xiàn)在已經(jīng)啟動了。

    Manager application讓你可以在沒有系統(tǒng)管理特權(quán)的基礎(chǔ)上,安裝新的Web應(yīng)用,以用于測試。如果我們有一個新的web應(yīng)用位于/home/user/hello下在,并且想把它安裝到 /hello下,為了測試這個應(yīng)用,我們可以這么做,在第一個文件框中輸入“/hello”(作為訪問時的path),在第二個文本框中輸入“file:/home/user/hello”(作為Config URL)。

    Manager application還允許你停止、重新啟動、移除以及重新部署一個web應(yīng)用。停止一個應(yīng)用使其無法被訪問,當(dāng)有用戶嘗試訪問這個被停止的應(yīng)用時,將看到一個503的錯誤——“503 - This application is not currently available”。

    移除一個web應(yīng)用,只是指從Tomcat的運(yùn)行拷貝中刪除了該應(yīng)用,如果你重新啟動Tomcat,被刪除的應(yīng)用將再次出現(xiàn)(也就是說,移除并不是指從硬盤上刪除)。

    3.部署一個web應(yīng)用
    有兩個辦法可以在系統(tǒng)中部署web服務(wù)。
    1> 拷貝你的WAR文件或者你的web應(yīng)用文件夾(包括該web的所有內(nèi)容)到$CATALINA_BASE/webapps目錄下。
    2> 為你的web服務(wù)建立一個只包括context內(nèi)容的XML片斷文件,并把該文件放到$CATALINA_BASE/webapps目錄下。這個web應(yīng)用本身可以存儲在硬盤上的任何地方。

    如果你有一個WAR文件,你若想部署它,則只需要把該文件簡單的拷貝到CATALINA_BASE/webapps目錄下即可,文件必須以“.war”作為擴(kuò)展名。一旦Tomcat監(jiān)聽到這個文件,它將(缺省的)解開該文件包作為一個子目錄,并以WAR文件的文件名作為子目錄的名字。接下來,Tomcat將在內(nèi)存中建立一個context,就好象你在server.xml文件里建立一樣。當(dāng)然,其他必需的內(nèi)容,將從server.xml中的DefaultContext獲得。

    部署web應(yīng)用的另一種方式是寫一個Context XML片斷文件,然后把該文件拷貝到CATALINA_BASE/webapps目錄下。一個Context片斷并非一個完整的XML文件,而只是一個context元素,以及對該應(yīng)用的相應(yīng)描述。這種片斷文件就像是從server.xml中切取出來的context元素一樣,所以這種片斷被命名為“context片斷”。

    舉個例子,如果我們想部署一個名叫MyWebApp.war的應(yīng)用,該應(yīng)用使用realm作為訪問控制方式,我們可以使用下面這個片斷:

    <!--  
     Context fragment for deploying MyWebApp.war  
    -->
    <Context path="/demo" docBase="webapps/MyWebApp.war"
            debug="0" privileged="true">
     <Realm className="org.apache.catalina.realm.UserDatabaseRealm"                
            resourceName="UserDatabase"/>
    </Context>

    把該片斷命名為“MyWebApp.xml”,然后拷貝到CATALINA_BASE/webapps目錄下。

    這種context片斷提供了一種便利的方法來部署web應(yīng)用,你不需要編輯server.xml,除非你想改變?nèi)笔〉牟渴鹛匦裕惭b一個新的web應(yīng)用時不需要重啟動Tomcat。


    4.配置虛擬主機(jī)(Virtual Hosts)
    關(guān)于server.xml中“Host”這個元素,只有在你設(shè)置虛擬主機(jī)的才需要修改。虛擬主機(jī)是一種在一個web服務(wù)器上服務(wù)多個域名的機(jī)制,對每個域名而言,都好象獨(dú)享了整個主機(jī)。實(shí)際上,大多數(shù)的小型商務(wù)網(wǎng)站都是采用虛擬主機(jī)實(shí)現(xiàn)的,這主要是因?yàn)樘摂M主機(jī)能直接連接到Internet并提供相應(yīng)的帶寬,以保障合理的訪問響應(yīng)速度,另外虛擬主機(jī)還能提供一個穩(wěn)定的固定IP。

    基于名字的虛擬主機(jī)可以被建立在任何web服務(wù)器上,建立的方法就是通過在域名服務(wù)器(DNS)上建立IP地址的別名,并且告訴web服務(wù)器把去往不同域名的請求分發(fā)到相應(yīng)的網(wǎng)頁目錄。因?yàn)檫@篇文章主要是講Tomcat,我們不準(zhǔn)備介紹在各種操作系統(tǒng)上設(shè)置DNS的方法,如果你在這方面需要幫助,請參考《DNS and Bind》一書,作者是Paul Albitz and Cricket Liu (O'Reilly)。為了示范方便,我將使用一個靜態(tài)的主機(jī)文件,因?yàn)檫@是測試別名最簡單的方法。
    在Tomcat中使用虛擬主機(jī),你需要設(shè)置DNS或主機(jī)數(shù)據(jù)。為了測試,為本地IP設(shè)置一個IP別名就足夠了,接下來,你需要在server.xml中添加幾行內(nèi)容,如下:

    <Server port="8005" shutdown="SHUTDOWN" debug="0">
     <Service name="Tomcat-Standalone">
       <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
    port="8080" minProcessors="5" maxProcessors="75"
    enableLookups="true" redirectPort="8443"/>
       <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
    port="8443" minProcessors="5" maxProcessors="75"
    acceptCount="10" debug="0" scheme="https" secure="true"/>
         <Factory className="org.apache.coyote.tomcat4.CoyoteServerSocketFactory"
    clientAuth="false" protocol="TLS" />
       </Connector>
       <Engine name="Standalone" defaultHost="localhost" debug="0">
         <!-- This Host is the default Host -->
         <Host name="localhost" debug="0" appBase="webapps"
         unpackWARs="true" autoDeploy="true">
           <Context path="" docBase="ROOT" debug="0"/>
           <Context path="/orders" docBase="/home/ian/orders" debug="0"
                          reloadable="true" crossContext="true">
           </Context>
         </Host>

         <!-- This Host is the first "Virtual Host": www.example.com -->
         <Host name="www.example.com" appBase="/home/example/webapp">
           <Context path="" docBase="."/>
         </Host>

       </Engine>
     </Service>
    </Server>

    Tomcat的server.xml文件,在初始狀態(tài)下,只包括一個虛擬主機(jī),但是它容易被擴(kuò)充到支持多個虛擬主機(jī)。在前面的例子中展示的是一個簡單的server.xml版本,其中粗體部分就是用于添加一個虛擬主機(jī)。每一個Host元素必須包括一個或多個context元素,所包含的context元素中必須有一個是默認(rèn)的context,這個默認(rèn)的context的顯示路徑應(yīng)該為空(例如,path=””)。

    5.配置基礎(chǔ)驗(yàn)證(Basic Authentication)
    容器管理驗(yàn)證方法控制著當(dāng)用戶訪問受保護(hù)的web應(yīng)用資源時,如何進(jìn)行用戶的身份鑒別。當(dāng)一個web應(yīng)用使用了Basic Authentication(BASIC參數(shù)在web.xml文件中auto-method元素中設(shè)置),而有用戶訪問受保護(hù)的web應(yīng)用時,Tomcat將通過HTTP Basic Authentication方式,彈出一個對話框,要求用戶輸入用戶名和密碼。在這種驗(yàn)證方法中,所有密碼將被以64位的編碼方式在網(wǎng)絡(luò)上傳輸。

    注意:使用Basic Authentication通過被認(rèn)為是不安全的,因?yàn)樗鼪]有強(qiáng)健的加密方法,除非在客戶端和服務(wù)器端都使用HTTPS或者其他密碼加密碼方式(比如,在一個虛擬私人網(wǎng)絡(luò)中)。若沒有額外的加密方法,網(wǎng)絡(luò)管理員將能夠截獲(或?yàn)E用)用戶的密碼。但是,如果你是剛開始使用Tomcat,或者你想在你的web應(yīng)用中測試一下基于容器的安全管理,Basic Authentication還是非常易于設(shè)置和使用的。只需要添加<security-constraint>和<login-config>兩個元素到你的web應(yīng)用的web.xml文件中,并且在CATALINA_BASE/conf/tomcat-users.xml 文件中添加適當(dāng)?shù)?lt;role>和<user>即可,然后重新啟動Tomcat。

    下面例子中的web.xml摘自一個俱樂部會員網(wǎng)站系統(tǒng),該系統(tǒng)中只有member目錄被保護(hù)起來,并使用Basic Authentication進(jìn)行身份驗(yàn)證。請注意,這種方式將有效的代替Apache web服務(wù)器中的.htaccess文件。

    <!--
     Define the Members-only area, by defining
     a "Security Constraint" on this Application, and
     mapping it to the subdirectory (URL) that we want
     to restrict.
    -->
    <security-constraint>
     <web-resource-collection>
       <web-resource-name>
         Entire Application
       </web-resource-name>
       <url-pattern>/members/*</url-pattern>
     </web-resource-collection>
     <auth-constraint>
         <role-name>member</role-name>
     </auth-constraint>
    </security-constraint>
    <!-- Define the Login Configuration for this Application -->
    <login-config>
     <auth-method>BASIC</auth-method>
     <realm-name>My Club Members-only Area</realm-name>
    </login-config>

    6.配置單點(diǎn)登錄(Single Sign-On)
    一旦你設(shè)置了realm和驗(yàn)證的方法,你就需要進(jìn)行實(shí)際的用戶登錄處理。一般說來,對用戶而言登錄系統(tǒng)是一件很麻煩的事情,你必須盡量減少用戶登錄驗(yàn)證的次數(shù)。作為缺省的情況,當(dāng)用戶第一次請求受保護(hù)的資源時,每一個web應(yīng)用都會要求用戶登錄。如果你運(yùn)行了多個web應(yīng)用,并且每個應(yīng)用都需要進(jìn)行單獨(dú)的用戶驗(yàn)證,那這看起來就有點(diǎn)像你在與你的用戶搏斗。用戶們不知道怎樣才能把多個分離的應(yīng)用整合成一個單獨(dú)的系統(tǒng),所有他們也就不知道他們需要訪問多少個不同的應(yīng)用,只是很迷惑,為什么總要不停的登錄。

    Tomcat 4的“single sign-on”特性允許用戶在訪問同一虛擬主機(jī)下所有web應(yīng)用時,只需登錄一次。為了使用這個功能,你只需要在Host上添加一個SingleSignOn Valve元素即可,如下所示:

    <Valve className="org.apache.catalina.authenticator.SingleSignOn"
          debug="0"/>

    在Tomcat初始安裝后,server.xml的注釋里面包括SingleSignOn Valve配置的例子,你只需要去掉注釋,即可使用。那么,任何用戶只要登錄過一個應(yīng)用,則對于同一虛擬主機(jī)下的所有應(yīng)用同樣有效。

    使用single sign-on valve有一些重要的限制:
    1> value必須被配置和嵌套在相同的Host元素里,并且所有需要進(jìn)行單點(diǎn)驗(yàn)證的web應(yīng)用(必須通過context元素定義)都位于該Host下。
    2> 包括共享用戶信息的realm必須被設(shè)置在同一級Host中或者嵌套之外。
    3> 不能被context中的realm覆蓋。
    4> 使用單點(diǎn)登錄的web應(yīng)用最好使用一個Tomcat的內(nèi)置的驗(yàn)證方式(被定義在web.xml中的<auth-method>中),這比自定義的驗(yàn)證方式強(qiáng),Tomcat內(nèi)置的的驗(yàn)證方式包括basic、digest、form和client-cert。
    5> 如果你使用單點(diǎn)登錄,還希望集成一個第三方的web應(yīng)用到你的網(wǎng)站中來,并且這個新的web應(yīng)用使用它自己的驗(yàn)證方式,而不使用容器管理安全,那你基本上就沒招了。你的用戶每次登錄原來所有應(yīng)用時需要登錄一次,并且在請求新的第三方應(yīng)用時還得再登錄一次。當(dāng)然,如果你擁有這個第三方web應(yīng)用的源碼,而你又是一個程序員,你可以修改它,但那恐怕也不容易做。
    6> 單點(diǎn)登錄需要使用cookies。

    7.配置用戶定制目錄(Customized User Directores)
    一些站點(diǎn)允許個別用戶在服務(wù)器上發(fā)布網(wǎng)頁。例如,一所大學(xué)的學(xué)院可能想給每一位學(xué)生一個公共區(qū)域,或者是一個ISP希望給一些web空間給他的客戶,但這又不是虛擬主機(jī)。在這種情況下,一個典型的方法就是在用戶名前面加一個特殊字符(~),作為每位用戶的網(wǎng)站,比如:

    http://www.cs.myuniversity.edu/~username
    http://members.mybigisp.com/~username

    Tomcat提供兩種方法在主機(jī)上映射這些個人網(wǎng)站,主要使用一對特殊的Listener元素。Listener的className屬性應(yīng)該是org.apache.catalina.startup.UserConfig,userClass屬性應(yīng)該是幾個映射類之一。如果你的系統(tǒng)是Unix,它將有一個標(biāo)準(zhǔn)的/etc/passwd文件,該文件中的帳號能夠被運(yùn)行中的Tomcat很容易的讀取,該文件指定了用戶的主目錄,使用PasswdUserDatabase 映射類。

    <Listener className="org.apache.catalina.startup.UserConfig"
    directoryName="public_html"
    userClass="org.apache.catalina.startup.PasswdUserDatabase"/>

    web文件需要放置在像/home/users/ian/public_html 或者 /users/jbrittain/public_html一樣的目錄下面。當(dāng)然你也可以改變public_html 到其他任何子目錄下。

    實(shí)際上,這個用戶目錄根本不一定需要位于用戶主目錄下里面。如果你沒有一個密碼文件,但你又想把一個用戶名映射到公共的像/home一樣目錄的子目錄里面,則可以使用HomesUserDatabase類。

    <Listener className="org.apache.catalina.startup.UserConfig"
    directoryName="public_html" homeBase="/home"
    userClass="org.apache.catalina.startup.HomesUserDatabase"/>

    這樣一來,web文件就可以位于像/home/ian/public_html 或者 /home/jasonb/public_html一樣的目錄下。這種形式對Windows而言更加有利,你可以使用一個像c:\home這樣的目錄。

    這些Listener元素,如果出現(xiàn),則必須在Host元素里面,而不能在context元素里面,因?yàn)樗鼈兌加脩?yīng)用于Host本身。


    8.在Tomcat中使用CGI腳本
    Tomcat主要是作為Servlet/JSP容器,但它也有許多傳統(tǒng)web服務(wù)器的性能。支持通用網(wǎng)關(guān)接口(Common Gateway Interface,即CGI)就是其中之一,CGI提供一組方法在響應(yīng)瀏覽器請求時運(yùn)行一些擴(kuò)展程序。CGI之所以被稱為通用,是因?yàn)樗茉诖蠖鄶?shù)程序或腳本中被調(diào)用,包括:Perl,Python,awk,Unix shell scripting等,甚至包括Java。當(dāng)然,你大概不會把一個Java應(yīng)用程序當(dāng)作CGI來運(yùn)行,畢竟這樣太過原始。一般而言,開發(fā)Servlet總要比CGI具有更好的效率,因?yàn)楫?dāng)用戶點(diǎn)擊一個鏈接或一個按鈕時,你不需要從操作系統(tǒng)層開始進(jìn)行處理。

    Tomcat包括一個可選的CGI Servlet,允許你運(yùn)行遺留下來的CGI腳本。

    為了使Tomcat能夠運(yùn)行CGI,你必須做如下幾件事:
    1. 把servlets-cgi.renametojar (在CATALINA_HOME/server/lib/目錄下)改名為servlets-cgi.jar。處理CGI的servlet應(yīng)該位于Tomcat的CLASSPATH下。
    2. 在Tomcat的CATALINA_BASE/conf/web.xml 文件中,把關(guān)于<servlet-name> CGI的那段的注釋去掉(默認(rèn)情況下,該段位于第241行)。
    3. 同樣,在Tomcat的CATALINA_BASE/conf/web.xml文件中,把關(guān)于對CGI進(jìn)行映射的那段的注釋去掉(默認(rèn)情況下,該段位于第299行)。注意,這段內(nèi)容指定了HTML鏈接到CGI腳本的訪問方式。
    4. 你可以把CGI腳本放置在WEB-INF/cgi 目錄下(注意,WEB-INF是一個安全的地方,你可以把一些不想被用戶看見或基于安全考慮不想暴露的文件放在此處),或者你也可以把CGI腳本放置在context下的其他目錄下,并為CGI Servlet調(diào)整cgiPathPrefix初始化參數(shù)。這就指定的CGI Servlet的實(shí)際位置,且不能與上一步指定的URL重名。
    5. 重新啟動Tomcat,你的CGI就可以運(yùn)行了。

    在Tomcat中,CGI程序缺省放置在WEB-INF/cgi目錄下,正如前面所提示的那樣,WEB-INF目錄受保護(hù)的,通過客戶端的瀏覽器無法窺探到其中內(nèi)容,所以對于放置含有密碼或其他敏感信息的CGI腳本而言,這是一個非常好的地方。為了兼容其他服務(wù)器,盡管你也可以把CGI腳本保存在傳統(tǒng)的/cgi-bin目錄,但要知道,在這些目錄中的文件有可能被網(wǎng)上好奇的沖浪者看到。另外,在Unix中,請確定運(yùn)行Tomcat的用戶有執(zhí)行CGI腳本的權(quán)限。

    9.改變Tomcat中的JSP編譯器(JSP Compiler)
    在Tomcat 4.1(或更高版本,大概),JSP的編譯由包含在Tomcat里面的Ant程序控制器直接執(zhí)行。這聽起來有一點(diǎn)點(diǎn)奇怪,但這正是Ant有意為之的一部分,有一個API文檔指導(dǎo)開發(fā)者在沒有啟動一個新的JVM的情況下,使用Ant。這是使用Ant進(jìn)行Java開發(fā)的一大優(yōu)勢。另外,這也意味著你現(xiàn)在能夠在Ant中使用任何javac支持的編譯方式,這里有一個關(guān)于Apache Ant使用手冊的javac page列表。使用起來是容易的,因?yàn)槟阒恍枰?lt;init-param> 元素中定義一個名字叫“compiler”,并且在value中有一個支持編譯的編譯器名字,示例如下:

    <servlet>
       <servlet-name>jsp</servlet-name>
       <servlet-class>
         org.apache.jasper.servlet.JspServlet
       </servlet-class>
       <init-param>
         <param-name>logVerbosityLevel</param-name>
         <param-value>WARNING</param-value>
       </init-param>
       <init-param>
         <param-name>compiler</param-name>
         <param-value>jikes</param-value>
       </init-param>
       <load-on-startup>3</load-on-startup>
    </servlet>

    當(dāng)然,給出的編譯器必須已經(jīng)安裝在你的系統(tǒng)中,并且CLASSPATH可能需要設(shè)置,那處決于你選擇的是何種編譯器。

    10.限制特定主機(jī)訪問(Restricting Access to Specific Hosts)
    有時,你可能想限制對Tomcat web應(yīng)用的訪問,比如,你希望只有你指定的主機(jī)或IP地址可以訪問你的應(yīng)用。這樣一來,就只有那些指定的的客戶端可以訪問服務(wù)的內(nèi)容了。為了實(shí)現(xiàn)這種效果,Tomcat提供了兩個參數(shù)供你配置:RemoteHostValve 和RemoteAddrValve。

    通過配置這兩個參數(shù),可以讓你過濾來自請求的主機(jī)或IP地址,并允許或拒絕哪些主機(jī)/IP。與之類似的,在Apache的httpd文件里有對每個目錄的允許/拒絕指定。
    例如你可以把Admin Web application設(shè)置成只允許本地訪問,設(shè)置如下:

    <Context path="/path/to/secret_files" ...>
     <Valve className="org.apache.catalina.valves.RemoteAddrValve"
            allow="127.0.0.1" deny=""/>
    </Context>

    如果沒有給出允許主機(jī)的指定,那么與拒絕主機(jī)匹配的主機(jī)就會被拒絕,除此之外的都是允許的。與之類似,如果沒有給出拒絕主機(jī)的指定,那么與允許主機(jī)匹配的主機(jī)就會被允許,除此之外的都是拒絕的。
    posted @ 2005-10-10 12:19 rodney 閱讀(251) | 評論 (0)編輯 收藏
     

    今天上網(wǎng)不管輸入任何一個網(wǎng)址都沒有辦法顯示內(nèi)容,提示找不該網(wǎng)頁。
    用ping www.google.com提示Unknow host www.google.com
    用nslookup www.google.com 提示有:服務(wù)器名,IP地址都有顯示出來。
    用tracert IP地址也可以。
    后來我在服務(wù)中把DNS Client的服務(wù)重啟一下就OK了。

    posted @ 2005-09-23 10:17 rodney 閱讀(388) | 評論 (0)編輯 收藏
     
    insertBefore()--在參考子節(jié)點(diǎn)之前插入一個新的子節(jié)點(diǎn).如果參考的子節(jié)點(diǎn)為null,則新的子節(jié)點(diǎn)將作為調(diào)用節(jié)點(diǎn)的最后一個子節(jié)點(diǎn)插入。

    replaceChild()--在childNodes集合種使用指定的newChild來代替oldChild;如果代替成功,則返回oldChild;如果newChild是null,則只需刪除oldChild即可。

    removeChild()--從節(jié)點(diǎn)的ChildNodes集合中刪除removeChild指定的節(jié)點(diǎn),如果刪除成功,則返回刪除的子節(jié)點(diǎn)。

    appendChild()--添加一個新節(jié)點(diǎn)到childNodes集合的末尾,如果成功,則返回新節(jié)點(diǎn)。

    cloneNode()--創(chuàng)建一個新的、復(fù)制的節(jié)點(diǎn),并且如果傳入的參數(shù)是true時,還將復(fù)制子節(jié)點(diǎn),如果節(jié)點(diǎn)是一個元素,那么還將復(fù)制相應(yīng)屬性,返回新的節(jié)點(diǎn)。

    為了在一棵文檔樹中訪問或者建立一個新的節(jié)點(diǎn),可以用下面這些方法:
    getElementById()
    getElementsByTagName()
    createElement()
    createAttribute()
    createTextNode()
    注意:在一個頁面中只有一個文檔對象,除了getElementsByTagName()外,其它方法均只能通過document.methodName()調(diào)用。
    再看一下下面這個例子:
    <html>
    <head>
    <title></title>
    </head>
    <body>
    <p>This is a sample paragraph.</p>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    alert(document.documentElement.lastChild.firstChild.tagName);
    //-->
    </SCRIPT>
    </body>
    </html>
    結(jié)果將會顯示"P",下面是一些解釋
    document.documentElement - gives the page's HTML tag.
    lastChild - gives the BODY tag.
    firstChild - gives the first element in the BODY.
    tagName - gives that element's tag name, "P" in this case.
    另一個:
    <html>
    <head>
    <title></title>
    </head>
    <body>

    <p>This is a sample paragraph.</p>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    alert(document.documentElement.lastChild.firstChild.tagName);
    //-->
    </SCRIPT>
    </body>
    </html>
    這個例子和上面并沒有什么大的區(qū)別,僅僅是多了一個空行,但是在NS中,會自動為空行加上一個節(jié)點(diǎn)所以返回值是"undefined",而在IE中將跳過空行仍然指向P標(biāo)簽。

    更常用的方法:
    <p id="myParagraph">This is a sample paragraph.</p>
    ...
    alert(document.getElementById("myParagraph").tagName);
    這種方法你不用關(guān)心節(jié)點(diǎn)在文檔樹的哪一個地方,而只要保證在頁面中它的ID號是唯一的就可以了。

    接下來一種訪問元素節(jié)點(diǎn)的方法是document.getElementsByTagName(),它的返回值是一個數(shù)組,例如你可以通過下面的例子改變整個頁面的連接:
    var nodeList = document.getElementsByTagName("A");
    for (var i = 0; i < nodeList.length; i++)
    nodeList[i].style.color = "#ff0000";

    attribute和attributes
    attribute對象和元素相關(guān),但是卻沒有被認(rèn)為是文檔樹的一部分,因此屬性不能作為子節(jié)點(diǎn)集合的一部分來使用。
    有三種方法可以為元素建立新的屬性
    1.
    var attr = document.createAttribute("myAttribute");
    attr.value = "myValue";
    var el = document.getElementById("myParagraph");
    el.setAttributeNode(attr);
    2.
    var el = document.getElementById("myParagraph");
    el.setAttribute("myAttribute", "myValue");
    3.
    var el = document.getElementById("myParagraph");
    el.myAttribute = "myValue";
    你可以在html標(biāo)簽種定義自己的屬性:
    <p id="myParagraph" myAttribute="myValue">This is a sample paragraph.</p>
    ...
    alert(document.getElementById("myParagraph").getAttribute("myAttribute"));
    返回值將是"myValue".但是請注意這里必須使用getAttribute,而不是AttributeName,因?yàn)橛幸恍g覽器并不支持自定義屬性。

    attributes也可以被輕易的從一個元素中刪除,你可以使用removeAttribute()或者將element.attributeName指向一個null值。
    通過attributes我們就可以產(chǎn)生一些動態(tài)效果:
    <p id="sample1" align="left">Text in a paragraph element.</p>
    ... code for the links ...
    document.getElementById('sample1').setAttribute('align', 'left');
    document.getElementById('sample1').setAttribute('align', 'right');
    另一種:
    <p id="sample2" style="text-align:left;">Text in a paragraph
    element.</p>
    ... code for the links ...
    document.getElementById('sample2').style.textAlign = 'left';
    document.getElementById('sample2').style.textAlign = 'right';
    跟上面的例子一樣,展示了可用通過元素修改style中的屬性,甚至是class中的.唯一要提到的是textAlign是從style中的text-align中演變而來的,有一條基本規(guī)律,就是style中的屬性如果出現(xiàn)-則在dom中將會被去掉并且隨后的一個字母將改為大寫,還有一點(diǎn)就是如果即使元素中沒有style屬性,上述例子同樣可以使用。

    text nodes:
    先看一下例子:
    <p id="sample1">This is the initial text.</p>
    ... code for the links ...
    document.getElementById('sample1').firstChild.nodeValue =
    'Once upon a time...';
    document.getElementById('sample1').firstChild.nodeValue =
    '...in a galaxy far, far away';
    首先text nodes并沒有像elements那樣具有id屬性,所有它并不能直接通過document.getElementById()或者document.getElementsByTagName()訪問
    看一下下面的結(jié)構(gòu)也許會更明白一些:
    click for full size
    可以看出通過document.getElementById('sample1').firstChild.nodeValue就可以讀取或者設(shè)置text nodes的值了。

    另一個更加復(fù)雜一點(diǎn)的例子:
    <p id="sample2">This is the <b>initial</b> text.</p>
    它的文檔結(jié)構(gòu)
    click for full size
    在這里通過document.getElementById('sample1').firstChild.nodeValue講僅僅改變"This is the"
    initial text.將不會改變.在這里大家應(yīng)該看到了它和innerHTML的不同了.當(dāng)然你也可以這樣用:
    document.getElementById('sample3').firstChild.nodeValue =
    '<b>Once</b> upon a time...';
    document.getElementById('sample3').firstChild.nodeValue =
    '...in a galaxy <i>far, far</i> away';
    其中的html代碼將不會被解釋,瀏覽器將把他們當(dāng)成普通的文本來顯示。

    創(chuàng)建和刪除text nodes:
    var myTextNode = document.createTextNode("my text");
    通過上面的代碼你可以創(chuàng)建一個新的text node,但是它并不是文檔樹的一部分,要讓它顯示在頁面上就必須讓它成為文檔樹中某一個節(jié)點(diǎn)的child,因?yàn)?BR>text nodes不能有兒子,所以你不能將它加入到一個text nodes中,attribute也不屬于文檔樹的一部分,這條路也不行,現(xiàn)在只剩下elements nodes
    了,以下的例子展示了如何添加和刪除一個text node:
    <p id="sample1">Initial text within a paragraph element.</p>
    ... code to add a text node ...
    var text = document.createTextNode(" new text " + (++counter1));
    var el = document.getElementById("sample1");
    el.appendChild(text);
    ... code to remove the last child node ...
    var el = document.getElementById("sample1");
    if (el.hasChildNodes())
    el.removeChild(el.lastChild);
    增加文本是很容易的,上面的代碼建立了一個新的text node并且通過appendChild()方法將其加入到childNodes數(shù)組的末尾,并設(shè)置了一個counter1的全局變量,利于觀察
    hasChildNodes()的返回值是true or false;用來判斷當(dāng)前節(jié)點(diǎn)是否還有child,以阻止當(dāng)其沒有child的時候調(diào)用removeChild()產(chǎn)生的錯誤。

    創(chuàng)建element nodes
    有了上面的基礎(chǔ),應(yīng)該更容易理解了,先看一下下面的代碼
    <div id="sample1">This text is in a DIV element.</div>
    ... code for the link ...
    var paraEl, boldEl;
    paraEl = document.createElement("p");
    boldEl = document.createElement("b");
    paraEl.appendChild(document.createTextNode("This is a new paragraph with "));
    boldEl.appendChild(document.createTextNode("bold"));
    paraEl.appendChild(boldEl);
    paraEl.appendChild(document.createTextNode(" text added to the DIV"));
    document.getElementById("sample1").appendChild(paraEl);
    你還可以直接為新加的element nodes設(shè)置attribute,以下兩種都可以:
    boldEl.style.color = "#ffff00";
    paraEl.appendChild(boldEl);
    或者:
    paraEl.appendChild(boldEl);
    boldEl.style.color = "#ffff00";

    注:此文主要來自于一些英文資料和身邊的一些參考書,如果有錯誤大家請指出,一起討論,DOM我一點(diǎn)也不熟。
    posted @ 2005-09-19 13:28 rodney 閱讀(600) | 評論 (0)編輯 收藏
     
    有JDBC編程的人都會知道這是一個什么樣的異常。做為剛出道的菜鳥我可因?yàn)檫@個異常把我整一下。
    我希望這小段隨筆能給閱讀都帶來幫助,也希望大家多多指教。
    我在EJB中寫了一個方法:public Vector searchCase(String dataSource,BlacksmokeEnqDataobject inputObj,String sql,int maxAllowSize){
      Connection con = null;
      Vector VqueryData = null;
      PreparedStatement ps = null;
      ResultSet rs = null;
      FormatFunctions ff = new FormatFunctions();
      BlacksmokeEnqReportDataobject blsObj = null;
      SqlFunctions sf = new SqlFunctions();
      try{
       con = getConnection(dataSource);
       String drv_ic_n = inputObj.getDrv_ic_n();
       String caseType = inputObj.getCaseType();
       String vehicleNo = inputObj.getVehNo();
       String fleetType = inputObj.getFleetType();
       String make = inputObj.getMake();
       String model = inputObj.getModel();
       String payFrom = inputObj.getPayDateFrom();
       String payTo = inputObj.getPayDateTo();
       String offFrom = inputObj.getOffeDateFrom();
       String offTo = inputObj.getOffeDateTo();
       String entryFrom = inputObj.getEntryDateFrom();
       String entryTo = inputObj.getEntryDateTo();
       int smokeFrom = inputObj.getSmokeFrom();
       int smokeTo = inputObj.getSmokeTo();
       if (drv_ic_n.equals("")){
        drv_ic_n = null;
       }
       if (caseType.equals("")){
        caseType = null;
       }
       if (vehicleNo.equals("")){
        vehicleNo = null;
       }
       if (fleetType.equals("")){
        fleetType = null;
       }
       if (make.equals("")){
        make = null;
       }
       if (model.equals("")){
        model = null;
       }
       if (payFrom.length()>0 && payFrom.equalsIgnoreCase("00/00/0000")){
        payFrom = null;
       }
       if (payTo.length()>0 && payTo.equalsIgnoreCase("00/00/0000")){
        payTo = null;
       }
       if (offFrom.length()>0 && offFrom.equalsIgnoreCase("00/00/0000")){
        offFrom = null;
       }
       if (offTo.length()>0 && offTo.equalsIgnoreCase("00/00/0000")){
        offTo = null;
       }
       if (entryFrom.length()>0 && entryFrom.equalsIgnoreCase("00/00/0000")){
        entryFrom = null;
       }
       if (entryTo.length()>0 && entryTo.equalsIgnoreCase("00/00/0000")){
        entryTo = null;
       }   
       String tmpSql = sf.retuSqlS(sql);
       tmpSql = sf.linkSql(tmpSql,":LS_CO_FINE_PAID_D_FROM",payFrom);
       tmpSql = sf.linkSql(tmpSql,":LS_CO_FINE_PAID_D_TO",payTo);
       tmpSql = sf.linkSql(tmpSql,":LS_BLS_OFFENCE_D_FROM",offFrom);
       tmpSql = sf.linkSql(tmpSql,":LS_BLS_OFFENCE_D_TO",offTo);
       tmpSql = sf.linkSql(tmpSql,":LS_ENTRY_D_FROM",entryFrom);
       tmpSql =  sf.linkSql(tmpSql,":LS_ENTRY_D_TO",entryTo);
       ps = con.prepareStatement(tmpSql);
    //   System.out.println(tmpSql);
       int idx = 0;
       ps.setString(++idx,drv_ic_n);
       ps.setString(++idx,drv_ic_n);
       ps.setString(++idx,caseType);
       ps.setString(++idx,caseType);
       ps.setString(++idx,vehicleNo);
       ps.setString(++idx,vehicleNo);
       ps.setString(++idx,fleetType);
       ps.setString(++idx,fleetType);
       ps.setString(++idx,make);
       ps.setString(++idx,make);
       ps.setString(++idx,model);
       ps.setString(++idx,model);
       ps.setInt(++idx,smokeFrom);
       ps.setInt(++idx,smokeFrom);
       ps.setInt(++idx,smokeTo);
    //   ps.setInt(++idx,smokeTo);  
       ps.executeQuery();
       rs = ps.getResultSet();
       VqueryData = new Vector();
       idx = 0;
       while(rs.next() && idx <= maxAllowSize){
        blsObj = new BlacksmokeEnqReportDataobject();
        blsObj.setDRV_IC_N(rs.getString("DRV_IC_N"));
        blsObj.setDRV_NM(rs.getString("DRV_NM"));
        blsObj.setBLS_CASE_N(rs.getString("BLS_CASE_N"));
        blsObj.setBLS_CASE_T(rs.getString("BLS_CASE_T"));
        blsObj.setVEH_REGN_N(rs.getString("VEH_REGN_N"));
        blsObj.setBLS_FLT_T(rs.getString("BLS_FLT_T"));
        blsObj.setBLS_MAKE_C(rs.getString("BLS_MAKE_C"));
        blsObj.setBLS_MODEL_C(rs.getString("BLS_MODEL_C"));
        blsObj.setBLS_OFFENCE_D(ff.dateFormat(rs.getDate("BLS_OFFENCE_D")));
        blsObj.setENTRY_D(ff.dateFormat(rs.getDate("ENTRY_D")));
        blsObj.setSMOKE_LEV_READ(rs.getInt("SMOKE_LEV_READ"));
        blsObj.setCO_FINE_PAID_D(ff.dateFormat(rs.getDate("CO_FINE_PAID_D")));
        VqueryData.addElement(blsObj);
        idx++;
       }
       }catch(Exception e){
        blsObj.setErrStatus(sf.ckException(e));
        VqueryData.addElement(blsObj);
        e.printStackTrace();
       }finally{
        SqlFunctions.cleanup(ps, rs);
        SqlFunctions.cleanup(con);
       }
      return VqueryData;
     }這是一個通過XML文件來傳SQL語。把查詢語句寫在XML文件中,在Servlet中調(diào)用XML文件。
    上面那個錯誤是因?yàn)闆]有對XML中的查詢變量進(jìn)行綁定,或者是多寫,或少寫變量,或者變量名寫錯了。后來我重新認(rèn)真的做了一遍,發(fā)生我沒有寫錯。我把JDeveloper關(guān)了,重新打開,可以了。我的沒有想這是怎么一回,如果有同樣問題的好友知道這是怎么一回事,請聯(lián)系我rodney_luo@163.com. QQ:86322591
    posted @ 2005-09-15 16:19 rodney 閱讀(15715) | 評論 (1)編輯 收藏
     

    在JPS中用request.Session().setAttribute("別名",對象),如果對對象是一個Value類型,在JSP中取這個對象時一定要用Value類型來接收。不然的的話會出現(xiàn)java.io.ClasscateExection的異常。

    posted @ 2005-09-15 14:46 rodney 閱讀(1129) | 評論 (1)編輯 收藏
     
    Ping
    Ping是個使用頻率極高的實(shí)用程序,用于確定本地主機(jī)是否能與另一臺主機(jī)交換(發(fā)送與接收)數(shù)據(jù)報(bào)。根據(jù)返回的信息,你就可以推斷TCP/IP參數(shù)是否設(shè)置得正確以及運(yùn)行是否正常。需要注意的是:成功地與另一臺主機(jī)進(jìn)行一次或兩次數(shù)據(jù)報(bào)交換并不表示TCP/IP配置就是正確的,你必須執(zhí)行大量的本地主機(jī)與遠(yuǎn)程主機(jī)的數(shù)據(jù)報(bào)交換,才能確信TCP/IP的正確性。
    簡單的說,Ping就是一個測試程序,如果Ping運(yùn)行正確,你大體上就可以排除網(wǎng)絡(luò)訪問層、網(wǎng)卡、MODEM的輸入輸出線路、電纜和路由器等存在的故障,從而減小了問題的范圍。但由于可以自定義所發(fā)數(shù)據(jù)報(bào)的大小及無休止的高速發(fā)送,Ping也被某些別有用心的人作為DDOS(拒絕服務(wù)攻擊)的工具,前段時間Yahoo就是被人利用數(shù)百臺可以高速接入互聯(lián)網(wǎng)的電腦連續(xù)發(fā)送大量Ping數(shù)據(jù)包而癱瘓的。
    按照缺省設(shè)置,Windows上運(yùn)行的Ping命令發(fā)送4個ICMP(網(wǎng)間控制報(bào)文協(xié)議)回送請求,每個32字節(jié)數(shù)據(jù),如果一切正常,你應(yīng)能得到4個回送應(yīng)答。
    Ping能夠以毫秒為單位顯示發(fā)送回送請求到返回回送應(yīng)答之間的時間量。如果應(yīng)答時間短,表示數(shù)據(jù)報(bào)不必通過太多的路由器或網(wǎng)絡(luò)連接速度比較快。Ping還能顯示TTL(Time To Live存在時間)值,你可以通過TTL值推算一下數(shù)據(jù)包已經(jīng)通過了多少個路由器:源地點(diǎn)TTL起始值(就是比返回TTL略大的一個2的乘方數(shù))-返回時TTL值。例如,返回TTL值為119,那么可以推算數(shù)據(jù)報(bào)離開源地址的TTL起始值為128,而源地點(diǎn)到目標(biāo)地點(diǎn)要通過9個路由器網(wǎng)段(128-119);如果返回TTL值為246,TTL起始值就是256,源地點(diǎn)到目標(biāo)地點(diǎn)要通過9個路由器網(wǎng)段。
    通過Ping檢測網(wǎng)絡(luò)故障的典型次序
    正常情況下,當(dāng)你使用Ping命令來查找問題所在或檢驗(yàn)網(wǎng)絡(luò)運(yùn)行情況時,你需要使用許多Ping命令,如果所有都運(yùn)行正確,你就可以相信基本的連通性和配置參數(shù)沒有問題;如果某些Ping命令出現(xiàn)運(yùn)行故障,它也可以指明到何處去查找問題。下面就給出一個典型的檢測次序及對應(yīng)的可能故障:
    ping 127.0.0.1——這個Ping命令被送到本地計(jì)算機(jī)的IP軟件,該命令永不退出該計(jì)算機(jī)。如果沒有做到這一點(diǎn),就表示TCP/IP的安裝或運(yùn)行存在某些最基本的問題。
    ping 本機(jī)IP——這個命令被送到你計(jì)算機(jī)所配置的IP地址,你的計(jì)算機(jī)始終都應(yīng)該對該P(yáng)ing命令作出應(yīng)答,如果沒有,則表示本地配置或安裝存在問題。出現(xiàn)此問題時,局域網(wǎng)用戶請斷開網(wǎng)絡(luò)電纜,然后重新發(fā)送該命令。如果網(wǎng)線斷開后本命令正確,則表示另一臺計(jì)算機(jī)可能配置了相同的IP地址。
    ping 局域網(wǎng)內(nèi)其他IP——這個命令應(yīng)該離開你的計(jì)算機(jī),經(jīng)過網(wǎng)卡及網(wǎng)絡(luò)電纜到達(dá)其他計(jì)算機(jī),再返回。收到回送應(yīng)答表明本地網(wǎng)絡(luò)中的網(wǎng)卡和載體運(yùn)行正確。但如果收到0個回送應(yīng)答,那么表示子網(wǎng)掩碼(進(jìn)行子網(wǎng)分割時,將IP地址的網(wǎng)絡(luò)部分與主機(jī)部分分開的代碼)不正確或網(wǎng)卡配置錯誤或電纜系統(tǒng)有問題。
    ping 網(wǎng)關(guān)IP——這個命令如果應(yīng)答正確,表示局域網(wǎng)中的網(wǎng)關(guān)路由器正在運(yùn)行并能夠作出應(yīng)答。
    ping 遠(yuǎn)程IP——如果收到4個應(yīng)答,表示成功的使用了缺省網(wǎng)關(guān)。對于撥號上網(wǎng)用戶則表示能夠成功的訪問Internet(但不排除ISP的DNS會有問題)。
    ping localhost——localhost是個作系統(tǒng)的網(wǎng)絡(luò)保留名,它是127.0.0.1的別名,每太計(jì)算機(jī)都應(yīng)該能夠?qū)⒃撁洲D(zhuǎn)換成該地址。如果沒有做到這一帶內(nèi),則表示主機(jī)文件(/Windows/host)中存在問題。
    ping www.yahoo.com——對這個域名執(zhí)行Ping命令,你的計(jì)算機(jī)必須先將域名轉(zhuǎn)換成IP地址,通常是通過DNS服務(wù)器 如果這里出現(xiàn)故障,則表示DNS服務(wù)器的IP地址配置不正確或DNS服務(wù)器有故障(對于撥號上網(wǎng)用戶,某些ISP已經(jīng)不需要設(shè)置DNS服務(wù)器了)。順便說一句:你也可以利用該命令實(shí)現(xiàn)域名對IP地址的轉(zhuǎn)換功能。
    如果上面所列出的所有Ping命令都能正常運(yùn)行,那么你對你的計(jì)算機(jī)進(jìn)行本地和遠(yuǎn)程通信的功能基本上就可以放心了。但是,這些命令的成功并不表示你所有的網(wǎng)絡(luò)配置都沒有問題,例如,某些子網(wǎng)掩碼錯誤就可能無法用這些方法檢測到。
    Ping命令的常用參數(shù)選項(xiàng)
    ping IP -t——連續(xù)對IP地址執(zhí)行Ping命令,直到被用戶以Ctrl+C中斷。
    ping IP -l 2000——指定Ping命令中的數(shù)據(jù)長度為2000字節(jié),而不是缺省的32字節(jié)。
    ping IP -n——執(zhí)行特定次數(shù)的Ping命令。
    Netstat
    Netstat用于顯示與IP、TCP、UDP和ICMP協(xié)議相關(guān)的統(tǒng)計(jì)數(shù)據(jù),一般用于檢驗(yàn)本機(jī)各端口的網(wǎng)絡(luò)連接情況。
    如果你的計(jì)算機(jī)有時候接受到的數(shù)據(jù)報(bào)會導(dǎo)致出錯數(shù)據(jù)刪除或故障,你不必感到奇怪,TCP/IP可以容許這些類型的錯誤,并能夠自動重發(fā)數(shù)據(jù)報(bào)。但如果累計(jì)的出錯情況數(shù)目占到所接收的IP數(shù)據(jù)報(bào)相當(dāng)大的百分比,或者它的數(shù)目正迅速增加,那么你就應(yīng)該使用Netstat查一查為什么會出現(xiàn)這些情況了。
    Netstat的一些常用選項(xiàng):
    netstat -s——本選項(xiàng)能夠按照各個協(xié)議分別顯示其統(tǒng)計(jì)數(shù)據(jù)。如果你的應(yīng)用程序(如Web瀏覽器)運(yùn)行速度比較慢,或者不能顯示W(wǎng)eb頁之類的數(shù)據(jù),那么你就可以用本選項(xiàng)來查看一下所顯示的信息。你需要仔細(xì)查看統(tǒng)計(jì)數(shù)據(jù)的各行,找到出錯的關(guān)鍵字,進(jìn)而確定問題所在。
    netstat -e——本選項(xiàng)用于顯示關(guān)于以太網(wǎng)的統(tǒng)計(jì)數(shù)據(jù)。它列出的項(xiàng)目包括傳送的數(shù)據(jù)報(bào)的總字節(jié)數(shù)、錯誤數(shù)、刪除數(shù)、數(shù)據(jù)報(bào)的數(shù)量和廣播的數(shù)量。這些統(tǒng)計(jì)數(shù)據(jù)既有發(fā)送的數(shù)據(jù)報(bào)數(shù)量,也有接收的數(shù)據(jù)報(bào)數(shù)量。這個選項(xiàng)可以用來統(tǒng)計(jì)一些基本的網(wǎng)絡(luò)流量)。
    netstat -r——本選項(xiàng)可以顯示關(guān)于路由表的信息,類似于后面所講使用route print命令時看到的 信息。除了顯示有效路由外,還顯示當(dāng)前有效的連接。
    netstat -a——本選項(xiàng)顯示一個所有的有效連接信息列表,包括已建立的連接(ESTABLISHED),也包括監(jiān)聽連接請求(LISTENING)的那些連接。
    netstat -n——顯示所有已建立的有效連接。
    Netstat的妙用
    經(jīng)常上網(wǎng)的人一般都使用ICQ的,不知道你有沒有被一些討厭的人騷擾得不敢上線,想投訴卻又不知從和下手?其實(shí),你只要知道對方的IP,就可以向他所屬的ISP投訴了。但怎樣才能通過ICQ知道對方的IP呢?如果對方在設(shè)置ICQ時選擇了不顯示IP地址,那你是無法在信息欄中看到的。其實(shí),你只需要通過Netstat就可以很方便的做到這一點(diǎn):當(dāng)他通過ICQ或其他的工具與你相連時(例如你給他發(fā)一條ICQ信息或他給你發(fā)一條信息),你立刻在DOS Prompt下輸入netstat -n或netstat -a就可以看到對方上網(wǎng)時所用的IP或ISP域名了。甚至連所用Port都完全暴露了,如果你想給他一些教訓(xùn),這些信息已經(jīng)足夠……
    IPConfig
    IPConfig實(shí)用程序和它的等價圖形用戶界面——Windows 95/98中的WinIPCfg可用于顯示當(dāng)前的TCP/IP配置的設(shè)置值。這些信息一般用來檢驗(yàn)人工配置的TCP/IP設(shè)置是否正確。但是,如果你的計(jì)算機(jī)和所在的局域網(wǎng)使用了動態(tài)主機(jī)配置協(xié)議(Dynamic Host Configuration Protocol,DHCP——Windows NT下的一種把較少的IP地址分配給較多主機(jī)使用的協(xié)議,類似于撥號上網(wǎng)的動態(tài)IP分配),這個程序所顯示的信息也許更加實(shí)用。這時,IPConfig可以讓你了解你的計(jì)算機(jī)是否成功的租用到一個IP地址,如果租用到則可以了解它目前分配到的是什么地址。了解計(jì)算機(jī)當(dāng)前的IP地址、子網(wǎng)掩碼和缺省網(wǎng)關(guān)實(shí)際上是進(jìn)行測試和故障分析的必要項(xiàng)目。
    最常用的選項(xiàng):
    ipconfig——當(dāng)使用IPConfig時不帶任何參數(shù)選項(xiàng),那么它為每個已經(jīng)配置了的接口顯示IP地址、子網(wǎng)掩碼和缺省網(wǎng)關(guān)值
    ipconfig /all——當(dāng)使用all選項(xiàng)時,IPConfig能為DNS和WINS服務(wù)器顯示它已配置且所要使用的附加信息(如IP地址等),并且顯示內(nèi)置于本地網(wǎng)卡中的物理地址(MAC)。如果IP地址是從DHCP服務(wù)器租用的,IPConfig將顯示DHCP服務(wù)器的IP地址和租用地址預(yù)計(jì)失效的日期(有關(guān)DHCP服務(wù)器的相關(guān)內(nèi)容請?jiān)斠娖渌嘘P(guān)NT服務(wù)器的書籍或詢問你的網(wǎng)管),其輸出信息見圖6的下半部分。
    ipconfig /release和ipconfig /renew——這是兩個附加選項(xiàng),只能在向DHCP服務(wù)器租用其IP地址的計(jì)算機(jī)上起作用。如果你輸入ipconfig /release,那么所有接口的租用IP地址便重新交付給DHCP服務(wù)器(歸還IP地址)。如果你輸入ipconfig /renew,那么本地計(jì)算機(jī)便設(shè)法與DHCP服務(wù)器取得聯(lián)系,并租用一個IP地址。請注意,大多數(shù)情況下網(wǎng)卡將被重新賦予和以前所賦予的相同的IP地址。
    如果你使用的是Windows 95/98,那么你應(yīng)該更習(xí)慣使用winipcfg而不是ipconfig,因?yàn)樗且粋€圖形用戶界面,而且所顯示的信息與ipconfig相同,并且也提供發(fā)布和更新動態(tài)IP地址的選項(xiàng) 如果你購買了Windows NT Resource Kit(NT資源包),那么Windows NT也包含了一個圖形替代界面,該實(shí)用程序的名字是wntipcfg,和Windows 95/98的winipcfg類似。
    ARP(地址轉(zhuǎn)換協(xié)議)
    ARP是一個重要的TCP/IP協(xié)議,并且用于確定對應(yīng)IP地址的網(wǎng)卡物理地址。實(shí)用arp命令,你能夠查看本地計(jì)算機(jī)或另一臺計(jì)算機(jī)的ARP高速緩存中的當(dāng)前內(nèi)容。此外,使用arp命令,也可以用人工方式輸入靜態(tài)的網(wǎng)卡物理/IP地址對,你可能會使用這種方式為缺省網(wǎng)關(guān)和本地服務(wù)器等常用主機(jī)進(jìn)行這項(xiàng)作,有助于減少網(wǎng)絡(luò)上的信息量。
    按照缺省設(shè)置,ARP高速緩存中的項(xiàng)目是動態(tài)的,每當(dāng)發(fā)送一個指定地點(diǎn)的數(shù)據(jù)報(bào)且高速緩存中不存在當(dāng)前項(xiàng)目時,ARP便會自動添加該項(xiàng)目。一旦高速緩存的項(xiàng)目被輸入,它們就已經(jīng)開始走向失效狀態(tài)。例如,在Windows NT網(wǎng)絡(luò)中,如果輸入項(xiàng)目后不進(jìn)一步使用,物理/IP地址對就會在2至10分鐘內(nèi)失效。因此,如果ARP高速緩存中項(xiàng)目很少或根本沒有時,請不要奇怪,通過另一臺計(jì)算機(jī)或路由器的ping命令即可添加。所以,需要通過arp命令查看高速緩存中的內(nèi)容時,請最好先ping 此臺計(jì)算機(jī)(不能是本機(jī)發(fā)送ping命令)。
    常用命令選項(xiàng):
    arp -a或arp -g——用于查看高速緩存中的所有項(xiàng)目。-a和-g參數(shù)的結(jié)果是一樣的,多年來-g一直是UNIX平臺上用來顯示ARP高速緩存中所有項(xiàng)目的選項(xiàng),而Windows用的是arp -a(-a可被視為all,即全部的意思),但它也可以接受比較傳統(tǒng)的-g選項(xiàng)。
    arp -a IP——如果你有多個網(wǎng)卡,那么使用arp -a加上接口的IP地址,就可以只顯示與該接口相關(guān)的ARP緩存項(xiàng)目。
    arp -s IP 物理地址——你可以向ARP高速緩存中人工輸入一個靜態(tài)項(xiàng)目。該項(xiàng)目在計(jì)算機(jī)引導(dǎo)過程中將保持有效狀態(tài),或者在出現(xiàn)錯誤時,人工配置的物理地址將自動更新該項(xiàng)目。
    arp -d IP——使用本命令能夠人工刪除一個靜態(tài)項(xiàng)目。
    
    看到這里,你也許已經(jīng)有些累了……其實(shí)對于一般用戶來說也已經(jīng)足夠——你可以用ipconfig和ping命令來查看自己的網(wǎng)絡(luò)配置并判斷是否正確、可以用netstat查看別人與你所建立的連接并找出ICQ使用者所隱藏的IP信息、可以用arp查看網(wǎng)卡的MAC地址——這些已足已讓你丟掉菜鳥的頭銜。如果你并不滿足,那就“硬著頭皮”(下面的內(nèi)容可能有些枯燥)繼續(xù)Follow me……
    Tracert
    當(dāng)數(shù)據(jù)報(bào)從你的計(jì)算機(jī)經(jīng)過多個網(wǎng)關(guān)傳送到目的地時,Tracert命令可以用來跟蹤數(shù)據(jù)報(bào)使用的路由(路徑)。該實(shí)用程序跟蹤的路徑是源計(jì)算機(jī)到目的地的一條路徑,不能保證或認(rèn)為數(shù)據(jù)報(bào)總遵循這個路徑。如果你的配置使用DNS,那么你常常會從所產(chǎn)生的應(yīng)答中得到城市、地址和常見通信公司的名字。Tracert是一個運(yùn)行得比較慢的命令(如果你指定的目標(biāo)地址比較遠(yuǎn)),每個路由器你大約需要給它15秒鐘
    Tracert的使用很簡單,只需要在tracert后面跟一個IP地址或URL,Tracert會進(jìn)行相應(yīng)的域名轉(zhuǎn)換的。Tracert一般用來檢測故障的位置,你可以用tracert IP在哪個環(huán)節(jié)上出了問題,雖然還是沒有確定是什么問題,但它已經(jīng)告訴了我們問題所在的地方,你也就可以很有把握的告訴別人——某某出了問題。
    Route
    大多數(shù)主機(jī)一般都是駐留在只連接一臺路由器的網(wǎng)段上。由于只有一臺路由器,因此不存在使用哪一臺路由器將數(shù)據(jù)報(bào)發(fā)表到遠(yuǎn)程計(jì)算機(jī)上去的問題,該路由器的IP地址可作為該網(wǎng)段上所有計(jì)算機(jī)的缺省網(wǎng)關(guān)來輸入。
    但是,當(dāng)網(wǎng)絡(luò)上擁有兩個或多個路由器時,你就不一定想只依賴缺省網(wǎng)關(guān)了。實(shí)際上你可能想讓你的某些遠(yuǎn)程IP地址通過某個特定的路由器來傳遞,而其他的遠(yuǎn)程IP則通過另一個路由器來傳遞。
    在這種情況下,你需要相應(yīng)的路由信息,這些信息儲存在路由表中,每個主機(jī)和每個路由器都配有自己獨(dú)一無二的路由表。大多數(shù)路由器使用專門的路由協(xié)議來交換和動態(tài)更新路由器之間的路由表。但在有些情況下,必須人工將項(xiàng)目添加到路由器和主機(jī)上的路由表中。Route就是用來顯示、人工添加和修改路由表項(xiàng)目的。
    一般使用選項(xiàng):
    route print——本命令用于顯示路由表中的當(dāng)前項(xiàng)目,在單路由器網(wǎng)段上的輸出結(jié)果如圖12,由于用IP地址配置了網(wǎng)卡,因此所有的這些項(xiàng)目都是自動添加的。
    route add——使用本命令,可以將信路由項(xiàng)目添加給路由表。例如,如果要設(shè)定一個到目的網(wǎng)絡(luò)209.98.32.33的路由,其間要經(jīng)過5個路由器網(wǎng)段,首先要經(jīng)過本地網(wǎng)絡(luò)上的一個路由器,器IP為202.96.123.5,子網(wǎng)掩碼為255.255.255.224,那么你應(yīng)該輸入以下命令:
    route add 209.98.32.33 mask 255.255.255.224 202.96.123.5 metric 5
    route change——你可以使用本命令來修改數(shù)據(jù)的傳輸路由,不過,你不能使用本命令來改變數(shù)據(jù)的目的地。下面這個例子可以將數(shù)據(jù)的路由改到另一個路由器,它采用一條包含3個網(wǎng)段的更直的路徑:
    route add 209.98.32.33 mask 255.255.255.224 202.96.123.250 metric 3
    route delete——使用本命令可以從路由表中刪除路由。例如:route delete 209.98.32.33
    NBTStat
    NBTStat(TCP/IP上的NetBIOS統(tǒng)計(jì)數(shù)據(jù))實(shí)用程序用于提供關(guān)于關(guān)于NetBIOS的統(tǒng)計(jì)數(shù)據(jù)。運(yùn)用NetBIOS,你可以查看本地計(jì)算機(jī)或遠(yuǎn)程計(jì)算機(jī)上的NetBIOS名字表格。
    常用選項(xiàng):
    nbtstat -n——顯示寄存在本地的名字和服務(wù)程序
    nbtstat -c——本命令用于顯示NetBIOS名字高速緩存的內(nèi)容。NetBIOS名字高速緩存用于寸放與本計(jì)算機(jī)最近進(jìn)行通信的其他計(jì)算機(jī)的NetBIOS名字和IP地址對。
    nbtstat -r——本命令用于清除和重新加載NetBIOS名字高速緩存。
    nbtstat -a IP——通過IP顯示另一臺計(jì)算機(jī)的物理地址和名字列表,你所顯示的內(nèi)容就像對方計(jì)算機(jī)自己運(yùn)行nbtstat -n一樣
    nbtstat -s IP——顯示實(shí)用其IP地址的另一臺計(jì)算機(jī)的NetBIOS連接表。
    Net
    Net命令有很多函數(shù)用于實(shí)用和核查計(jì)算機(jī)之間的NetBIOS連接。這里我只介紹最常用的兩個:net view和net use。
    net view UNC——運(yùn)用此命令,你可以查看目標(biāo)服務(wù)器上的共享點(diǎn)名字。任何局域網(wǎng)里的人都可以發(fā)出此命令,而且不需要提供用戶ID或口令。UNC名字總是以\\開頭,后面跟隨目標(biāo)計(jì)算機(jī)的名字。例如,net view \\lx就是查看主機(jī)名為lx的計(jì)算機(jī)的共享點(diǎn)(見圖15)。
    net use 本地盤符 目標(biāo)計(jì)算機(jī)共享點(diǎn)——本命令用于建立或取消到達(dá)特定共享點(diǎn)的映像驅(qū)動器的連接(如果需要,你必須提供用戶ID或口令)。例如,你輸入net use f: \\lx\mp3就是將映像驅(qū)動器F:連接到\\lx\mp3共享點(diǎn)上,今后你直接訪問F:就可以訪問\\lx\mp3共享點(diǎn),這和你右擊“我的電腦”選擇映射網(wǎng)絡(luò)驅(qū)動器類似。
    Ping
    Ping是個使用頻率極高的實(shí)用程序,用于確定本地主機(jī)是否能與另一臺主機(jī)交換(發(fā)送與接收)數(shù)據(jù)報(bào)。根據(jù)返回的信息,你就可以推斷TCP/IP參數(shù)是否設(shè)置得正確以及運(yùn)行是否正常。需要注意的是:成功地與另一臺主機(jī)進(jìn)行一次或兩次數(shù)據(jù)報(bào)交換并不表示TCP/IP配置就是正確的,你必須執(zhí)行大量的本地主機(jī)與遠(yuǎn)程主機(jī)的數(shù)據(jù)報(bào)交換,才能確信TCP/IP的正確性。
    簡單的說,Ping就是一個測試程序,如果Ping運(yùn)行正確,你大體上就可以排除網(wǎng)絡(luò)訪問層、網(wǎng)卡、MODEM的輸入輸出線路、電纜和路由器等存在的故障,從而減小了問題的范圍。但由于可以自定義所發(fā)數(shù)據(jù)報(bào)的大小及無休止的高速發(fā)送,Ping也被某些別有用心的人作為DDOS(拒絕服務(wù)攻擊)的工具,前段時間Yahoo就是被人利用數(shù)百臺可以高速接入互聯(lián)網(wǎng)的電腦連續(xù)發(fā)送大量Ping數(shù)據(jù)包而癱瘓的。
    按照缺省設(shè)置,Windows上運(yùn)行的Ping命令發(fā)送4個ICMP(網(wǎng)間控制報(bào)文協(xié)議)回送請求,每個32字節(jié)數(shù)據(jù),如果一切正常,你應(yīng)能得到4個回送應(yīng)答。
    Ping能夠以毫秒為單位顯示發(fā)送回送請求到返回回送應(yīng)答之間的時間量。如果應(yīng)答時間短,表示數(shù)據(jù)報(bào)不必通過太多的路由器或網(wǎng)絡(luò)連接速度比較快。Ping還能顯示TTL(Time To Live存在時間)值,你可以通過TTL值推算一下數(shù)據(jù)包已經(jīng)通過了多少個路由器:源地點(diǎn)TTL起始值(就是比返回TTL略大的一個2的乘方數(shù))-返回時TTL值。例如,返回TTL值為119,那么可以推算數(shù)據(jù)報(bào)離開源地址的TTL起始值為128,而源地點(diǎn)到目標(biāo)地點(diǎn)要通過9個路由器網(wǎng)段(128-119);如果返回TTL值為246,TTL起始值就是256,源地點(diǎn)到目標(biāo)地點(diǎn)要通過9個路由器網(wǎng)段。
    通過Ping檢測網(wǎng)絡(luò)故障的典型次序
    正常情況下,當(dāng)你使用Ping命令來查找問題所在或檢驗(yàn)網(wǎng)絡(luò)運(yùn)行情況時,你需要使用許多Ping命令,如果所有都運(yùn)行正確,你就可以相信基本的連通性和配置參數(shù)沒有問題;如果某些Ping命令出現(xiàn)運(yùn)行故障,它也可以指明到何處去查找問題。下面就給出一個典型的檢測次序及對應(yīng)的可能故障:
    ping 127.0.0.1——這個Ping命令被送到本地計(jì)算機(jī)的IP軟件,該命令永不退出該計(jì)算機(jī)。如果沒有做到這一點(diǎn),就表示TCP/IP的安裝或運(yùn)行存在某些最基本的問題。
    ping 本機(jī)IP——這個命令被送到你計(jì)算機(jī)所配置的IP地址,你的計(jì)算機(jī)始終都應(yīng)該對該P(yáng)ing命令作出應(yīng)答,如果沒有,則表示本地配置或安裝存在問題。出現(xiàn)此問題時,局域網(wǎng)用戶請斷開網(wǎng)絡(luò)電纜,然后重新發(fā)送該命令。如果網(wǎng)線斷開后本命令正確,則表示另一臺計(jì)算機(jī)可能配置了相同的IP地址。
    ping 局域網(wǎng)內(nèi)其他IP——這個命令應(yīng)該離開你的計(jì)算機(jī),經(jīng)過網(wǎng)卡及網(wǎng)絡(luò)電纜到達(dá)其他計(jì)算機(jī),再返回。收到回送應(yīng)答表明本地網(wǎng)絡(luò)中的網(wǎng)卡和載體運(yùn)行正確。但如果收到0個回送應(yīng)答,那么表示子網(wǎng)掩碼(進(jìn)行子網(wǎng)分割時,將IP地址的網(wǎng)絡(luò)部分與主機(jī)部分分開的代碼)不正確或網(wǎng)卡配置錯誤或電纜系統(tǒng)有問題。
    ping 網(wǎng)關(guān)IP——這個命令如果應(yīng)答正確,表示局域網(wǎng)中的網(wǎng)關(guān)路由器正在運(yùn)行并能夠作出應(yīng)答。
    ping 遠(yuǎn)程IP——如果收到4個應(yīng)答,表示成功的使用了缺省網(wǎng)關(guān)。對于撥號上網(wǎng)用戶則表示能夠成功的訪問Internet(但不排除ISP的DNS會有問題)。
    ping localhost——localhost是個作系統(tǒng)的網(wǎng)絡(luò)保留名,它是127.0.0.1的別名,每太計(jì)算機(jī)都應(yīng)該能夠?qū)⒃撁洲D(zhuǎn)換成該地址。如果沒有做到這一帶內(nèi),則表示主機(jī)文件(/Windows/host)中存在問題。
    ping www.yahoo.com——對這個域名執(zhí)行Ping命令,你的計(jì)算機(jī)必須先將域名轉(zhuǎn)換成IP地址,通常是通過DNS服務(wù)器 如果這里出現(xiàn)故障,則表示DNS服務(wù)器的IP地址配置不正確或DNS服務(wù)器有故障(對于撥號上網(wǎng)用戶,某些ISP已經(jīng)不需要設(shè)置DNS服務(wù)器了)。順便說一句:你也可以利用該命令實(shí)現(xiàn)域名對IP地址的轉(zhuǎn)換功能。
    如果上面所列出的所有Ping命令都能正常運(yùn)行,那么你對你的計(jì)算機(jī)進(jìn)行本地和遠(yuǎn)程通信的功能基本上就可以放心了。但是,這些命令的成功并不表示你所有的網(wǎng)絡(luò)配置都沒有問題,例如,某些子網(wǎng)掩碼錯誤就可能無法用這些方法檢測到。
    Ping命令的常用參數(shù)選項(xiàng)
    ping IP -t——連續(xù)對IP地址執(zhí)行Ping命令,直到被用戶以Ctrl+C中斷。
    ping IP -l 2000——指定Ping命令中的數(shù)據(jù)長度為2000字節(jié),而不是缺省的32字節(jié)。
    ping IP -n——執(zhí)行特定次數(shù)的Ping命令。
    Netstat
    Netstat用于顯示與IP、TCP、UDP和ICMP協(xié)議相關(guān)的統(tǒng)計(jì)數(shù)據(jù),一般用于檢驗(yàn)本機(jī)各端口的網(wǎng)絡(luò)連接情況。
    如果你的計(jì)算機(jī)有時候接受到的數(shù)據(jù)報(bào)會導(dǎo)致出錯數(shù)據(jù)刪除或故障,你不必感到奇怪,TCP/IP可以容許這些類型的錯誤,并能夠自動重發(fā)數(shù)據(jù)報(bào)。但如果累計(jì)的出錯情況數(shù)目占到所接收的IP數(shù)據(jù)報(bào)相當(dāng)大的百分比,或者它的數(shù)目正迅速增加,那么你就應(yīng)該使用Netstat查一查為什么會出現(xiàn)這些情況了。
    Netstat的一些常用選項(xiàng):
    netstat -s——本選項(xiàng)能夠按照各個協(xié)議分別顯示其統(tǒng)計(jì)數(shù)據(jù)。如果你的應(yīng)用程序(如Web瀏覽器)運(yùn)行速度比較慢,或者不能顯示W(wǎng)eb頁之類的數(shù)據(jù),那么你就可以用本選項(xiàng)來查看一下所顯示的信息。你需要仔細(xì)查看統(tǒng)計(jì)數(shù)據(jù)的各行,找到出錯的關(guān)鍵字,進(jìn)而確定問題所在。
    netstat -e——本選項(xiàng)用于顯示關(guān)于以太網(wǎng)的統(tǒng)計(jì)數(shù)據(jù)。它列出的項(xiàng)目包括傳送的數(shù)據(jù)報(bào)的總字節(jié)數(shù)、錯誤數(shù)、刪除數(shù)、數(shù)據(jù)報(bào)的數(shù)量和廣播的數(shù)量。這些統(tǒng)計(jì)數(shù)據(jù)既有發(fā)送的數(shù)據(jù)報(bào)數(shù)量,也有接收的數(shù)據(jù)報(bào)數(shù)量。這個選項(xiàng)可以用來統(tǒng)計(jì)一些基本的網(wǎng)絡(luò)流量)。
    netstat -r——本選項(xiàng)可以顯示關(guān)于路由表的信息,類似于后面所講使用route print命令時看到的 信息。除了顯示有效路由外,還顯示當(dāng)前有效的連接。
    netstat -a——本選項(xiàng)顯示一個所有的有效連接信息列表,包括已建立的連接(ESTABLISHED),也包括監(jiān)聽連接請求(LISTENING)的那些連接。
    netstat -n——顯示所有已建立的有效連接。
    Netstat的妙用
    經(jīng)常上網(wǎng)的人一般都使用ICQ的,不知道你有沒有被一些討厭的人騷擾得不敢上線,想投訴卻又不知從和下手?其實(shí),你只要知道對方的IP,就可以向他所屬的ISP投訴了。但怎樣才能通過ICQ知道對方的IP呢?如果對方在設(shè)置ICQ時選擇了不顯示IP地址,那你是無法在信息欄中看到的。其實(shí),你只需要通過Netstat就可以很方便的做到這一點(diǎn):當(dāng)他通過ICQ或其他的工具與你相連時(例如你給他發(fā)一條ICQ信息或他給你發(fā)一條信息),你立刻在DOS Prompt下輸入netstat -n或netstat -a就可以看到對方上網(wǎng)時所用的IP或ISP域名了。甚至連所用Port都完全暴露了,如果你想給他一些教訓(xùn),這些信息已經(jīng)足夠……
    IPConfig
    IPConfig實(shí)用程序和它的等價圖形用戶界面——Windows 95/98中的WinIPCfg可用于顯示當(dāng)前的TCP/IP配置的設(shè)置值。這些信息一般用來檢驗(yàn)人工配置的TCP/IP設(shè)置是否正確。但是,如果你的計(jì)算機(jī)和所在的局域網(wǎng)使用了動態(tài)主機(jī)配置協(xié)議(Dynamic Host Configuration Protocol,DHCP——Windows NT下的一種把較少的IP地址分配給較多主機(jī)使用的協(xié)議,類似于撥號上網(wǎng)的動態(tài)IP分配),這個程序所顯示的信息也許更加實(shí)用。這時,IPConfig可以讓你了解你的計(jì)算機(jī)是否成功的租用到一個IP地址,如果租用到則可以了解它目前分配到的是什么地址。了解計(jì)算機(jī)當(dāng)前的IP地址、子網(wǎng)掩碼和缺省網(wǎng)關(guān)實(shí)際上是進(jìn)行測試和故障分析的必要項(xiàng)目。
    最常用的選項(xiàng):
    ipconfig——當(dāng)使用IPConfig時不帶任何參數(shù)選項(xiàng),那么它為每個已經(jīng)配置了的接口顯示IP地址、子網(wǎng)掩碼和缺省網(wǎng)關(guān)值
    ipconfig /all——當(dāng)使用all選項(xiàng)時,IPConfig能為DNS和WINS服務(wù)器顯示它已配置且所要使用的附加信息(如IP地址等),并且顯示內(nèi)置于本地網(wǎng)卡中的物理地址(MAC)。如果IP地址是從DHCP服務(wù)器租用的,IPConfig將顯示DHCP服務(wù)器的IP地址和租用地址預(yù)計(jì)失效的日期(有關(guān)DHCP服務(wù)器的相關(guān)內(nèi)容請?jiān)斠娖渌嘘P(guān)NT服務(wù)器的書籍或詢問你的網(wǎng)管),其輸出信息見圖6的下半部分。
    ipconfig /release和ipconfig /renew——這是兩個附加選項(xiàng),只能在向DHCP服務(wù)器租用其IP地址的計(jì)算機(jī)上起作用。如果你輸入ipconfig /release,那么所有接口的租用IP地址便重新交付給DHCP服務(wù)器(歸還IP地址)。如果你輸入ipconfig /renew,那么本地計(jì)算機(jī)便設(shè)法與DHCP服務(wù)器取得聯(lián)系,并租用一個IP地址。請注意,大多數(shù)情況下網(wǎng)卡將被重新賦予和以前所賦予的相同的IP地址。
    如果你使用的是Windows 95/98,那么你應(yīng)該更習(xí)慣使用winipcfg而不是ipconfig,因?yàn)樗且粋€圖形用戶界面,而且所顯示的信息與ipconfig相同,并且也提供發(fā)布和更新動態(tài)IP地址的選項(xiàng) 如果你購買了Windows NT Resource Kit(NT資源包),那么Windows NT也包含了一個圖形替代界面,該實(shí)用程序的名字是wntipcfg,和Windows 95/98的winipcfg類似。
    ARP(地址轉(zhuǎn)換協(xié)議)
    ARP是一個重要的TCP/IP協(xié)議,并且用于確定對應(yīng)IP地址的網(wǎng)卡物理地址。實(shí)用arp命令,你能夠查看本地計(jì)算機(jī)或另一臺計(jì)算機(jī)的ARP高速緩存中的當(dāng)前內(nèi)容。此外,使用arp命令,也可以用人工方式輸入靜態(tài)的網(wǎng)卡物理/IP地址對,你可能會使用這種方式為缺省網(wǎng)關(guān)和本地服務(wù)器等常用主機(jī)進(jìn)行這項(xiàng)作,有助于減少網(wǎng)絡(luò)上的信息量。
    按照缺省設(shè)置,ARP高速緩存中的項(xiàng)目是動態(tài)的,每當(dāng)發(fā)送一個指定地點(diǎn)的數(shù)據(jù)報(bào)且高速緩存中不存在當(dāng)前項(xiàng)目時,ARP便會自動添加該項(xiàng)目。一旦高速緩存的項(xiàng)目被輸入,它們就已經(jīng)開始走向失效狀態(tài)。例如,在Windows NT網(wǎng)絡(luò)中,如果輸入項(xiàng)目后不進(jìn)一步使用,物理/IP地址對就會在2至10分鐘內(nèi)失效。因此,如果ARP高速緩存中項(xiàng)目很少或根本沒有時,請不要奇怪,通過另一臺計(jì)算機(jī)或路由器的ping命令即可添加。所以,需要通過arp命令查看高速緩存中的內(nèi)容時,請最好先ping 此臺計(jì)算機(jī)(不能是本機(jī)發(fā)送ping命令)。
    常用命令選項(xiàng):
    arp -a或arp -g——用于查看高速緩存中的所有項(xiàng)目。-a和-g參數(shù)的結(jié)果是一樣的,多年來-g一直是UNIX平臺上用來顯示ARP高速緩存中所有項(xiàng)目的選項(xiàng),而Windows用的是arp -a(-a可被視為all,即全部的意思),但它也可以接受比較傳統(tǒng)的-g選項(xiàng)。
    arp -a IP——如果你有多個網(wǎng)卡,那么使用arp -a加上接口的IP地址,就可以只顯示與該接口相關(guān)的ARP緩存項(xiàng)目。
    arp -s IP 物理地址——你可以向ARP高速緩存中人工輸入一個靜態(tài)項(xiàng)目。該項(xiàng)目在計(jì)算機(jī)引導(dǎo)過程中將保持有效狀態(tài),或者在出現(xiàn)錯誤時,人工配置的物理地址將自動更新該項(xiàng)目。
    arp -d IP——使用本命令能夠人工刪除一個靜態(tài)項(xiàng)目。
    
    看到這里,你也許已經(jīng)有些累了……其實(shí)對于一般用戶來說也已經(jīng)足夠——你可以用ipconfig和ping命令來查看自己的網(wǎng)絡(luò)配置并判斷是否正確、可以用netstat查看別人與你所建立的連接并找出ICQ使用者所隱藏的IP信息、可以用arp查看網(wǎng)卡的MAC地址——這些已足已讓你丟掉菜鳥的頭銜。如果你并不滿足,那就“硬著頭皮”(下面的內(nèi)容可能有些枯燥)繼續(xù)Follow me……
    Tracert
    當(dāng)數(shù)據(jù)報(bào)從你的計(jì)算機(jī)經(jīng)過多個網(wǎng)關(guān)傳送到目的地時,Tracert命令可以用來跟蹤數(shù)據(jù)報(bào)使用的路由(路徑)。該實(shí)用程序跟蹤的路徑是源計(jì)算機(jī)到目的地的一條路徑,不能保證或認(rèn)為數(shù)據(jù)報(bào)總遵循這個路徑。如果你的配置使用DNS,那么你常常會從所產(chǎn)生的應(yīng)答中得到城市、地址和常見通信公司的名字。Tracert是一個運(yùn)行得比較慢的命令(如果你指定的目標(biāo)地址比較遠(yuǎn)),每個路由器你大約需要給它15秒鐘
    Tracert的使用很簡單,只需要在tracert后面跟一個IP地址或URL,Tracert會進(jìn)行相應(yīng)的域名轉(zhuǎn)換的。Tracert一般用來檢測故障的位置,你可以用tracert IP在哪個環(huán)節(jié)上出了問題,雖然還是沒有確定是什么問題,但它已經(jīng)告訴了我們問題所在的地方,你也就可以很有把握的告訴別人——某某出了問題。
    Route
    大多數(shù)主機(jī)一般都是駐留在只連接一臺路由器的網(wǎng)段上。由于只有一臺路由器,因此不存在使用哪一臺路由器將數(shù)據(jù)報(bào)發(fā)表到遠(yuǎn)程計(jì)算機(jī)上去的問題,該路由器的IP地址可作為該網(wǎng)段上所有計(jì)算機(jī)的缺省網(wǎng)關(guān)來輸入。
    但是,當(dāng)網(wǎng)絡(luò)上擁有兩個或多個路由器時,你就不一定想只依賴缺省網(wǎng)關(guān)了。實(shí)際上你可能想讓你的某些遠(yuǎn)程IP地址通過某個特定的路由器來傳遞,而其他的遠(yuǎn)程IP則通過另一個路由器來傳遞。
    在這種情況下,你需要相應(yīng)的路由信息,這些信息儲存在路由表中,每個主機(jī)和每個路由器都配有自己獨(dú)一無二的路由表。大多數(shù)路由器使用專門的路由協(xié)議來交換和動態(tài)更新路由器之間的路由表。但在有些情況下,必須人工將項(xiàng)目添加到路由器和主機(jī)上的路由表中。Route就是用來顯示、人工添加和修改路由表項(xiàng)目的。
    一般使用選項(xiàng):
    route print——本命令用于顯示路由表中的當(dāng)前項(xiàng)目,在單路由器網(wǎng)段上的輸出結(jié)果如圖12,由于用IP地址配置了網(wǎng)卡,因此所有的這些項(xiàng)目都是自動添加的。
    route add——使用本命令,可以將信路由項(xiàng)目添加給路由表。例如,如果要設(shè)定一個到目的網(wǎng)絡(luò)209.98.32.33的路由,其間要經(jīng)過5個路由器網(wǎng)段,首先要經(jīng)過本地網(wǎng)絡(luò)上的一個路由器,器IP為202.96.123.5,子網(wǎng)掩碼為255.255.255.224,那么你應(yīng)該輸入以下命令:
    route add 209.98.32.33 mask 255.255.255.224 202.96.123.5 metric 5
    route change——你可以使用本命令來修改數(shù)據(jù)的傳輸路由,不過,你不能使用本命令來改變數(shù)據(jù)的目的地。下面這個例子可以將數(shù)據(jù)的路由改到另一個路由器,它采用一條包含3個網(wǎng)段的更直的路徑:
    route add 209.98.32.33 mask 255.255.255.224 202.96.123.250 metric 3
    route delete——使用本命令可以從路由表中刪除路由。例如:route delete 209.98.32.33
    NBTStat
    NBTStat(TCP/IP上的NetBIOS統(tǒng)計(jì)數(shù)據(jù))實(shí)用程序用于提供關(guān)于關(guān)于NetBIOS的統(tǒng)計(jì)數(shù)據(jù)。運(yùn)用NetBIOS,你可以查看本地計(jì)算機(jī)或遠(yuǎn)程計(jì)算機(jī)上的NetBIOS名字表格。
    常用選項(xiàng):
    nbtstat -n——顯示寄存在本地的名字和服務(wù)程序
    nbtstat -c——本命令用于顯示NetBIOS名字高速緩存的內(nèi)容。NetBIOS名字高速緩存用于寸放與本計(jì)算機(jī)最近進(jìn)行通信的其他計(jì)算機(jī)的NetBIOS名字和IP地址對。
    nbtstat -r——本命令用于清除和重新加載NetBIOS名字高速緩存。
    nbtstat -a IP——通過IP顯示另一臺計(jì)算機(jī)的物理地址和名字列表,你所顯示的內(nèi)容就像對方計(jì)算機(jī)自己運(yùn)行nbtstat -n一樣
    nbtstat -s IP——顯示實(shí)用其IP地址的另一臺計(jì)算機(jī)的NetBIOS連接表。
    Net
    Net命令有很多函數(shù)用于實(shí)用和核查計(jì)算機(jī)之間的NetBIOS連接。這里我只介紹最常用的兩個:net view和net use。
    net view UNC——運(yùn)用此命令,你可以查看目標(biāo)服務(wù)器上的共享點(diǎn)名字。任何局域網(wǎng)里的人都可以發(fā)出此命令,而且不需要提供用戶ID或口令。UNC名字總是以\\開頭,后面跟隨目標(biāo)計(jì)算機(jī)的名字。例如,net view \\lx就是查看主機(jī)名為lx的計(jì)算機(jī)的共享點(diǎn)(見圖15)。
    net use 本地盤符 目標(biāo)計(jì)算機(jī)共享點(diǎn)——本命令用于建立或取消到達(dá)特定共享點(diǎn)的映像驅(qū)動器的連接(如果需要,你必須提供用戶ID或口令)。例如,你輸入net use f: \\lx\mp3就是將映像驅(qū)動器F:連接到\\lx\mp3共享點(diǎn)上,今后你直接訪問F:就可以訪問\\lx\mp3共享點(diǎn),這和你右擊“我的電腦”選擇映射網(wǎng)絡(luò)驅(qū)動器類似。
    ping命令的詳解:
    -a
        將目標(biāo)的機(jī)器標(biāo)識轉(zhuǎn)換為ip地址。
    -t
        若使用者不人為中斷會不斷的ping下去。
    -c
        count要求ping命令連續(xù)發(fā)送數(shù)據(jù)包,直到發(fā)出并接收到count個請求。
    -d
        為使用的套接字打開調(diào)試狀態(tài)。
    -f
        是一種快速方式ping。使得ping輸出數(shù)據(jù)包的速度和數(shù)據(jù)包從遠(yuǎn)程主機(jī)返回一樣快,或者更快,達(dá)到每秒100次。在這種方式下,每個請求用一個句點(diǎn)表示。對于每一個響應(yīng)打印一個空格鍵。
    -i
        seconds 在兩次數(shù)據(jù)包發(fā)送之間間隔一定的秒數(shù)。不能同-f一起使用。
    -n
        只使用數(shù)字方式。在一般情況下ping會試圖把IP地址轉(zhuǎn)換成主機(jī)名。這個選項(xiàng)要求ping打印IP地址而不去查找用符號表示的名字。如果由于某種原因無法使用本地DNS服務(wù)器這個選項(xiàng)就很重要了。
    -p
        pattern 擁護(hù)可以通過這個選項(xiàng)標(biāo)識16 pad字節(jié),把這些字節(jié)加入數(shù)據(jù)包中。當(dāng)在網(wǎng)絡(luò)中診斷與數(shù)據(jù)有關(guān)的錯誤時這個選項(xiàng)就非常有用。
    -q
        使ping只在開始和結(jié)束時打印一些概要信息。
    -R
        把ICMP RECORD-ROUTE選項(xiàng)加入到ECHO_REQUEST數(shù)據(jù)包中,要求在數(shù)據(jù)包中記錄路由,這樣當(dāng)數(shù)據(jù)返回時ping就可以把路由信息打印出來。每個數(shù)據(jù)包只能記錄9個路由節(jié)點(diǎn)。許多主機(jī)忽略或者放棄這個選項(xiàng)。
    -r
        使ping命令旁路掉用于發(fā)送數(shù)據(jù)包的正常路由表。
    -s
        packetsize使用戶能夠標(biāo)識出要發(fā)送數(shù)據(jù)的字節(jié)數(shù)。缺省是56個字符,再加上8個字節(jié)的ICMP數(shù)據(jù)頭,共64個ICMP數(shù)據(jù)字節(jié)。
    -v
        使ping處于verbose方式。它要ping命令除了打印ECHO-RESPONSE數(shù)據(jù)包之外,還打印其它所有返回的ICMP數(shù)據(jù)包。

    net命令詳解:
     這篇文章綜合了WINDOWS 98,WINDOWS WORKSTATION和WINDOWS SERVER 三個操作系統(tǒng)關(guān)于NET命令的解釋,希望可以全面一些。
        說明:
        NET命令是一個命令行命令。用途:管理網(wǎng)絡(luò)環(huán)境、服務(wù)、用戶、登陸。。。。等本地信息。WIN 98、WIN WORKSTATION和WIN NT都內(nèi)置了NET命令。但WIN 98的NET命令和WORKSTATION、NT的NET命令不同。WORKSTATION和SERVER中的NET命令基本相同。
        獲得HELP:
        在NT下可以用圖形的方式,開始-》幫助-》索引-》輸入NET;
        在COMMAND下可以用字符方式,NET /?或NET或NET HELP得到一些方法,相應(yīng)的方法的幫助NET COMMAND /HELP或NET HELP COMMAND或NET COMMAND /? 另對于錯誤NET HELPMSG MESSAGE#是4位數(shù)。
        注意事項(xiàng):
        所有net命令接受選項(xiàng)/yes和/no(可縮寫為/y和/n)。[簡單的說就是預(yù)先給系統(tǒng)的提問一個答案]。
        有一些命令是馬上產(chǎn)生作用并永久保存的,使用的時候要慎重。
        對于NET命令的功能都可以找到相應(yīng)的圖形工具的解決方案。
        命令的組成:命令 參數(shù) 選項(xiàng) | 參數(shù) 選項(xiàng) | 參數(shù) 選項(xiàng) |......
       NET命令的不同參數(shù)的基本用法:
    (1)NET VIEW
    作 用:顯示域列表、計(jì)算機(jī)列表或指定計(jì)算機(jī)的共享資源列表。
    命令格式:net view [computername | /domain[:domainname]]
    參數(shù)介紹:(1)鍵入不帶參數(shù)的net view顯示當(dāng)前域的計(jì)算機(jī)列表。
    (2)computername 指定要查看其共享資源的計(jì)算機(jī)。
    (3)/domain[:domainname]指定要查看其可用計(jì)算機(jī)的域。
    簡單事例:(1)net view YFANG查看YFANG的共享資源列表。
    (2)net view /domain:LOVE查看LOVE域中的機(jī)器列表。


    (2)NET USER
    作用:添加或更改用戶帳號或顯示用戶帳號信息。該命令也可以寫為 net users。
    命令格式:net user [username [password | *] [options]] [/domain]
    參數(shù)介紹:(1)鍵入不帶參數(shù)的net user查看計(jì)算機(jī)上的用戶帳號列表。
    (2)username添加、刪除、更改或查看用戶帳號名。
    (3)password為用戶帳號分配或更改密碼。
    (4)*提示輸入密碼。
    (5)/domain在計(jì)算機(jī)主域的主域控制器中執(zhí)行操作。
    簡單事例:(1)net user yfang查看用戶YFANG的信息

    (3)NET USE
    作用:連接計(jì)算機(jī)或斷開計(jì)算機(jī)與共享資源的連接,或顯示計(jì)算機(jī)的連接信息。
    命令格式:net use [devicename | *] [computernamesharename[volume]] [password | *]] [/user:[domainname]username] [[/delete] | [/persistent:{yes | no}]]
    參數(shù)介紹:
    鍵入不帶參數(shù)的net use列出網(wǎng)絡(luò)連接。
    devicename指定要連接到的資源名稱或要斷開的設(shè)備名稱。
    computernamesharename服務(wù)器及共享資源的名稱。
    password訪問共享資源的密碼。
    *提示鍵入密碼。
    /user指定進(jìn)行連接的另外一個用戶。
    domainname指定另一個域。
    username指定登錄的用戶名。
    /home將用戶連接到其宿主目錄。
    /delete取消指定網(wǎng)絡(luò)連接。
    /persistent控制永久網(wǎng)絡(luò)連接的使用。
    簡單事例:

    (1)net use e: YFANGTEMP將YFANGTEMP目錄建立為E盤
    (2)net use e: YFANGTEMP /delete斷開連接

    (4)NET TIME
    作 用:使計(jì)算機(jī)的時鐘與另一臺計(jì)算機(jī)或域的時間同步。
    命令格式:net time [computername | /domain[:name]] [/set]
    參數(shù)介紹:

    (1)computername要檢查或同步的服務(wù)器名。
    (2)/domain[:name]指定要與其時間同步的域。
    (3)/set使本計(jì)算機(jī)時鐘與指定計(jì)算機(jī)或域的時鐘同步。
    下面的這4個參數(shù)是相關(guān)的,所以一起介紹

    (5)Net Start
    作 用:啟動服務(wù),或顯示已啟動服務(wù)的列表。
    命令格式:net start service

    (6)Net Pause
    作 用:暫停正在運(yùn)行的服務(wù)。
    命令格式:net pause service

    (7)Net Continue
    作 用:重新激活掛起的服務(wù)。
    命令格式:net continue service

    (8)NET STOP
    作 用:停止 Windows NT 網(wǎng)絡(luò)服務(wù)。
    命令格式:net stop service

    參數(shù)介紹:我們來看看這些服務(wù)都是什么
    (1)alerter(警報(bào))
    (2)client service for netware(Netware 客戶端服務(wù))
    (3)clipbook server(剪貼簿服務(wù)器)
    (4)computer browser(計(jì)算機(jī)瀏覽器)
    (5)directory replicator(目錄復(fù)制器)
    (6)ftp publishing service (ftp )(ftp 發(fā)行服務(wù))
    (7)lpdsvc
    (8)net logon(網(wǎng)絡(luò)登錄)
    (9)network dde(網(wǎng)絡(luò) dde)
    (10)network dde dsdm(網(wǎng)絡(luò) dde dsdm)
    (11)network monitor agent(網(wǎng)絡(luò)監(jiān)控代理)
    (12)nt lm security support provider(NT LM 安全性支持提供)
    (13)ole(對象鏈接與嵌入)
    (14)remote access connection manager(遠(yuǎn)程訪問連接管理器)
    (15)remote access isnsap service(遠(yuǎn)程訪問 isnsap 服務(wù))
    (16)remote access server(遠(yuǎn)程訪問服務(wù)器)
    (17)remote procedure call (rpc) locator(遠(yuǎn)程過程調(diào)用定位器)
    (18)remote procedure call (rpc) service(遠(yuǎn)程過程調(diào)用服務(wù))
    (19)schedule(調(diào)度)
    (20)server(服務(wù)器)
    (21)simple tcp/ip services(簡單 TCP/IP 服務(wù))
    (22)snmp
    (23)spooler(后臺打印程序)
    (24)tcp/ip netbios helper(TCP/IP NETBIOS 輔助工具)
    (25)ups
    (26)workstation(工作站)
    (27)messenger(信使)
    (28)dhcp client
    (29)eventlog

    以下這些SERVICE只能在NT SERVER上使用
    (1)file server for macintosh
    (2)gateway service for netware
    (3)microsoft dhcp server
    (4)print server for macintosh
    (5)remoteboot
    (6)windows internet name service

    (9)Net Statistics
    作 用:顯示本地工作站或服務(wù)器服務(wù)的統(tǒng)計(jì)記錄。
    命令格式:net statistics [workstation | server]
    參數(shù)介紹:(1)鍵入不帶參數(shù)的net
    statistics列出其統(tǒng)計(jì)信息可用的運(yùn)行服務(wù)。
    (2)workstation顯示本地工作站服務(wù)的統(tǒng)計(jì)信息。
    (3)server顯示本地服務(wù)器服務(wù)的統(tǒng)計(jì)信息。
    簡單事例:(1)net statistics server | more顯示服務(wù)器服務(wù)的統(tǒng)計(jì)信息

    (10)Net Share
    作 用:創(chuàng)建、刪除或顯示共享資源。
    命令格式:net share sharename=drive:path [/users:number | /unlimited] [/remark:"text"]
    參數(shù)介紹:(1)鍵入不帶參數(shù)的net
    share顯示本地計(jì)算機(jī)上所有共享資源的信息。
    (2)sharename是共享資源的網(wǎng)絡(luò)名稱。
    (3)drive:path指定共享目錄的絕對路徑。
    (4)/users:number設(shè)置可同時訪問共享資源的最大用戶數(shù)。
    (5)/unlimited不限制同時訪問共享資源的用戶數(shù)。
    (6)/remark:"text "添加關(guān)于資源的注釋,注釋文字用引號引住。
    簡單事例:(1)net share mylove=c:temp /remark:"my first
    share"以mylove為共享名共享C:temp
    (2)net share mylove /delete停止共享mylove目錄
    (11)Net Session
    作 用:列出或斷開本地計(jì)算機(jī)和與之連接的客戶端的會話,也可以寫為net sessions或net sess。
    命令格式:net session [computername] [/delete]
    參數(shù)介紹:(1)鍵入不帶參數(shù)的net
    session顯示所有與本地計(jì)算機(jī)的會話的信息。
    (2)computername標(biāo)識要列出或斷開會話的計(jì)算機(jī)。

    (3)/delete結(jié)束與computername計(jì)算機(jī)會話并關(guān)閉本次會話期間計(jì)算機(jī)的所有進(jìn)程。
    簡單事例:(1)net session YFANG要顯示計(jì)算機(jī)名為YFANG的客戶端會話信息列表。
    (12)Net Send
    作 用:向網(wǎng)絡(luò)的其他用戶、計(jì)算機(jī)或通信名發(fā)送消息。
    命令格式:net send {name | * | /domain[:name] | /users} message
    參數(shù)介紹:(1)name要接收發(fā)送消息的用戶名、計(jì)算機(jī)名或通信名。
    (2)*將消息發(fā)送到組中所有名稱。
    (3)/domain[:name]將消息發(fā)送到計(jì)算機(jī)域中的所有名稱。
    (4)/users將消息發(fā)送到與服務(wù)器連接的所有用戶。
    (5)message作為消息發(fā)送的文本。
    簡單事例:(1)net send /users server will shutdown in 5 minutes.給所有連接到服務(wù)器的用戶發(fā)送消息
    (13)Net Print
    作 用:顯示或控制打印作業(yè)及打印隊(duì)列。
    命令格式:net print [computername ] job# [/hold | /release | /delete]
    參數(shù)介紹:(1)computername共享打印機(jī)隊(duì)列的計(jì)算機(jī)名。
    (2)sharename打印隊(duì)列名稱。
    (3)job#在打印機(jī)隊(duì)列中分配給打印作業(yè)的標(biāo)識號。
    (4)/hold使用 job# 時,在打印機(jī)隊(duì)列中使打印作業(yè)等待。
    (5)/release釋放保留的打印作業(yè)。
    (6)/delete從打印機(jī)隊(duì)列中刪除打印作業(yè)。
    簡單事例:(1)net print YFANGSEEME列出YFANG計(jì)算機(jī)上SEEME打印機(jī)隊(duì)列的目錄
    (14)Net Name
    作 用:添加或刪除消息名(有時也稱別名),或顯示計(jì)算機(jī)接收消息的名稱列表。
    命令格式:net name [name [/add | /delete]]
    參數(shù)介紹:(1)鍵入不帶參數(shù)的net name列出當(dāng)前使用的名稱。
    (2)name指定接收消息的名稱。
    (3)/add將名稱添加到計(jì)算機(jī)中。
    (4)/delete從計(jì)算機(jī)中刪除名稱。
    (15)Net Localgroup
    作 用:添加、顯示或更改本地組。
    命令格式:net localgroup groupname {/add [/comment:"text "] | /delete} [/domain]
    參數(shù)介紹:(1)鍵入不帶參數(shù)的net
    localgroup顯示服務(wù)器名稱和計(jì)算機(jī)的本地組名稱。
    (2)groupname要添加、擴(kuò)充或刪除的本地組名稱。
    (3)/comment: "text "為新建或現(xiàn)有組添加注釋。
    (4)/domain在當(dāng)前域的主域控制器中執(zhí)行操作,否則僅在本地計(jì)算機(jī)上執(zhí)行操作?
    (5)name [ ...]列出要添加到本地組或從本地組中刪除的一個或多個用戶名或組名。
    (6)/add將全局組名或用戶名添加到本地組中。
    (7)/delete從本地組中刪除組名或用戶名。
    簡單事例:(1)net localgroup love /add將名為love的本地組添加到本地用戶帳號數(shù)據(jù)庫
    (2)net localgroup love顯示love本地組中的用戶

    (16)Net Group
    作 用:在 Windows NT Server 域中添加、顯示或更改全局組。
    命令格式:net group groupname {/add [/comment:"text "] | /delete} [/domain]
    參數(shù)介紹:(1)鍵入不帶參數(shù)的net group顯示服務(wù)器名稱及服務(wù)器的組名稱。
    (2)groupname要添加、擴(kuò)展或刪除的組。
    (3)/comment:"text "為新建組或現(xiàn)有組添加注釋。

    (4)/domain在當(dāng)前域的主域控制器中執(zhí)行該操作,否則在本地計(jì)算機(jī)上執(zhí)行操作? ?
    (5)username[ ...]列表顯示要添加到組或從組中刪除的一個或多個用戶。
    (6)/add添加組或在組中添加用戶名。
    (7)/delete刪除組或從組中刪除用戶名。
    簡單事例:(1)net group love yfang1 yfang2 /add將現(xiàn)有用戶帳號yfang1和yfang2添加到本地計(jì)算機(jī)的love組

    (17)Net File
    作 用:顯示某服務(wù)器上所有打開的共享文件名及鎖定文件數(shù)。
    命令格式:net file [id [/close]]
    參數(shù)介紹:(1)鍵入不帶參數(shù)的net file獲得服務(wù)器上打開文件的列表。
    (2)id文件標(biāo)識號。
    (3)/close關(guān)閉打開的文件并釋放鎖定記錄。

    (18)Net Config
    作 用:顯示當(dāng)前運(yùn)行的可配置服務(wù),或顯示并更改某項(xiàng)服務(wù)的設(shè)置。
    命令格式:net config [service [options]]
    參數(shù)介紹:(1)鍵入不帶參數(shù)的net config顯示可配置服務(wù)的列表。
    (2)service通過net config命令進(jìn)行配置的服務(wù)(server或workstation)
    (3)options服務(wù)的特定選項(xiàng)。

    (19)Net Computer
    作 用:從域數(shù)據(jù)庫中添加或刪除計(jì)算機(jī)。
    命令格式:net computer computername {/add | /del}
    參數(shù)介紹:(1)computername指定要添加到域或從域中刪除的計(jì)算機(jī)。
    (2)/add將指定計(jì)算機(jī)添加到域。
    (3)/del將指定計(jì)算機(jī)從域中刪除。

    簡單事例:(1)net computer cc /add將計(jì)算機(jī) cc 添加到登錄域

    (20)Net Accounts
    作 用:更新用戶帳號數(shù)據(jù)庫、更改密碼及所有帳號的登錄要求。
    命令格式:net accounts [/forcelogoff:{minutes | no}] [/minpwlen:length] [/maxpwage:{days | unlimited}] [/minpwage:days] [/uniquepw:number] [/domain]
    參數(shù)介紹:(1)鍵入不帶參數(shù)的net
    accounts顯示當(dāng)前密碼設(shè)置、登錄時限及域信息。
    (2)/forcelogoff:{minutes | no}設(shè)置當(dāng)用戶帳號或有效登錄時間過期時
    (3)/minpwlen:length設(shè)置用戶帳號密碼的最少字符數(shù)。
    (4)/maxpwage:{days | unlimited}設(shè)置用戶帳號密碼有效的最大天數(shù)。
    (5)/minpwage:days設(shè)置用戶必須保持原密碼的最小天數(shù)。
    (6)/uniquepw:number要求用戶更改密碼時,必須在經(jīng)過number次后才能重復(fù)使用 與之相同的密碼。
    (7)/domain在當(dāng)前域的主域控制器上執(zhí)行該操作。
    (8)/sync當(dāng)用于主域控制器時,該命令使域中所有備份域控制器同步
    簡單事例:(1)net accounts /minpwlen:7將用戶帳號密碼的最少字符數(shù)設(shè)置為7

    ----------------------上面介紹的是NET命令在WINNT下的基本用法
    ----------------------下面我們看看NET命令在WIN98下的基本用法

    在WIN98中NET命令也有一些參數(shù)

    其中有一些參數(shù)的名字和功能及簡單的使用方法和WINNT下的相應(yīng)的參數(shù)的用法相? ?
    其中有(1)NET TIME命令
    (1)NET PRINT命令
    (1)NET USE命令
    (1)NET VIEW命令

    在WIN98中NET命令有一些參數(shù)
    其中有一些參數(shù)的名字和WINNT下的相應(yīng)的參數(shù)的名字相同但其用法卻有些不同
    其中有

    (1)NET START
    作 用:啟動相應(yīng)的服務(wù)。(不能在DOS-WIN中用)
    命令格式:NET START [BASIC | NWREDIR | WORKSTATION | NETBIND | NETBEUI | NWLINK] [/LIST] [/YES] [/VERBOSE]


    (2)NET STOP
    作 用:停止相應(yīng)的服務(wù).(不能在DOS-WIN中用)
    命令格式:NET STOP [BASIC | NWREDIR | WORKSTATION | NETBEUI | NWLINK] [/YES]

    在WIN98中NET命令還有一些參數(shù)是在98下才有的
    其中有

    (1)NET DIAG
    作 用:運(yùn)行MS的DIAGNOSTICS程序顯示網(wǎng)絡(luò)的DIAGNOSTIC信息
    命令格式:NET DIAGNOSTICS [/NAMES | /STATUS]


    (2)NET INIT
    作 用:不通過綁定來加載協(xié)議或網(wǎng)卡驅(qū)動(不能在DOS-WIN中用)
    命令格式:NET INITIALIZE [/DYNAMIC]

    (3)NET LOGOFF
    作 用:斷開連接的共享資源(不能在DOS-WIN中用)

    (4)NET LOGON
    作 用:在WORKGROUP中登陸(不能在DOS-WIN中用)
    命令格式:NET LOGON [user [password | ?]] [/DOMAIN:name] [/YES] [/SAVEPW:NO]

    (5)NET PASSWORD
    作 用:更改你的網(wǎng)絡(luò)登陸口令(不能在DOS-WIN中用)
    命令格式:NET PASSWORD computer | /DOMAIN:name [user [oldpassword [newpassword]]]

    posted @ 2005-09-13 10:47 rodney 閱讀(309) | 評論 (0)編輯 收藏
    僅列出標(biāo)題
    共5頁: 上一頁 1 2 3 4 5 下一頁 
     
    主站蜘蛛池模板: www在线观看播放免费视频日本| 免费h成人黄漫画嘿咻破解版| 特级毛片全部免费播放a一级| 亚洲小视频在线播放| 亚洲中文字幕无码不卡电影| 天天操夜夜操免费视频| aⅴ在线免费观看| 拍拍拍无挡免费视频网站| 羞羞网站在线免费观看| 亚洲色欲色欲www在线播放| 亚洲美女自拍视频| 久久亚洲国产伦理| 好看的电影网站亚洲一区| 国产日产亚洲系列最新| 又粗又硬又黄又爽的免费视频 | 亚洲国产精品狼友中文久久久| 欧美a级成人网站免费| 亚洲一区免费在线观看| 久久综合国产乱子伦精品免费| 99久久婷婷免费国产综合精品| 成人a毛片免费视频观看| 免费大片黄在线观看| 美女裸体无遮挡免费视频网站| 亚洲熟妇av午夜无码不卡| 中文字幕乱码亚洲精品一区| 亚洲人xxx日本人18| 亚洲AV综合色区无码二区爱AV| 亚洲国产精品午夜电影| 亚洲成年人电影网站| 亚洲理论在线观看| 亚洲六月丁香六月婷婷蜜芽| 亚洲欧洲校园自拍都市| 亚洲国产精品久久丫| 亚洲婷婷第一狠人综合精品| 亚洲人成77777在线播放网站不卡| 亚洲xxxxxx| 亚洲国产成人AV在线播放| 小说区亚洲自拍另类| 人禽伦免费交视频播放| 成人妇女免费播放久久久| 久久福利青草精品资源站免费|