none
懇請賜教要如何得知對方電腦的網域名稱? RRS feed

  • 問題

  • 大家晚安

    我的環境是 win2000 SP4+visual studio 2005 professional +SQL 2000

     

    想請教各位:

    今天老闆丟二萬多台的電腦名稱給我,要我去掃這些電腦現在是什麼網域

    不知道各位先進是否有什麼指令可以去掃對方電腦的網域

     

    我知道在DOS模式中輸入  nbtstat -a  電腦名稱

    下面就可以查到對方的網域,登入者的帳號,網路卡Mac值

    那請教在我使用的環境應該是用VB.NET內建指令去寫或是用 split去一個一個拆字元呢?

     

    順帶再問個問題,因為我之前都一直寫 Asp.NET 2.0,現在第一次寫VB.NET

    我有二萬台電腦名稱在資料庫裡,那VB.NET要怎麼像以前VB6.0一樣,一個動作做完了就換下一個電腦名稱?

     

    例如:

    我在VB6.0會宣告一個資料庫連線 rs

    當資料庫第一個值就是rs(0),  第二個值就是 rs(1)

     

    該動作做完後跳到下一個電腦名稱,我就寫 rs.movenext

     

    請問VB.NET哪邊有什麼範例可以看到類似的指令呢,

     

    懇請賜教,謝謝 ^.^

     

     

     

    2008年3月26日 下午 03:48

解答

  •  

    :::

    Imports System.Data.SqlClient
    Public Class Form1

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim cn As New SqlConnection("server=db;database=aaa;user id=sa;password=abc")
            Dim cmd As New SqlCommand("Select * from aaa", cn)

            cn.Open()
            Dim dr As SqlDataReader = cmd.ExecuteReader

            Do While dr.Read
                MessageBox.Show(dr(0))
            Loop

            cn.Close()
            cn = Nothing
        End Sub
    End Class

    2008年3月30日 上午 03:06
  • 恩~

    .Net 只有包裝自己電腦的網域。

     

    要查詢別台電腦的話,呼叫 nbtstat 然後用 > 輸出轉向到文字檔,或是用 console.Read* 這個類別會比較方便。

     

    不然就要呼叫 API ~

     

    不過也要目標電腦有在線上才有作用,若是只要查 IP 的話,DNS 這個類別也會對 WINS 查詢,所以只查 IP 會比較簡單,當然,也是目標電腦要在線上,才會動態對 WINS 註冊或透過網路芳鄰廣播。

     

    2008年3月30日 上午 07:10
    版主

所有回覆

  • 就用 ADO.NET 讀到 DataTable 就可以了。

     

    然後就是迴圈,處理:

    With DataTable

    For ibr = 0 To .Rows.Count - 1

    .Rows(ibr)(欄名)

    Next

    End With

     

    至於你原先的問題我看不太懂,現在是什麼網域不是 domain name 上就看出來了嗎?還需要再說啥?如果要依網域排序,我會這樣拆字串:

    原始 www.office.microsoft.com.tw

    先用 Split 用 . 分割 變成 {"www", "office", "microsoft", "com", "tw"}

    用 Array 類別反轉陣列變成 {"tw", "com", "microsoft", "office", "www"}

    用 Join 組合回 tw.com.microsoft.office.www

     

    所以這樣就可以依照網域來排序了。

    2008年3月26日 下午 05:09
    版主
  • 大大您好:,我的網域是指 domain, 我們公司有很多domain,但我想去偵測這台電腦是什麼domain

    ,所以想問VB.NET 2005 有什麼語法可以去查

     

     

    請教的第二個問題我之前程式是這樣寫:

    Private Sub Form_Load()

    Dim a As String
    Dim wshShell
    Dim objScriptExec
    Dim conn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim strsql As String

    Set wshShell = CreateObject("WScript.Shell")
        conn.ConnectionString = "Driver={SQL Server};server=db.;database=aaa;uid=sa;pwd=abc"
        conn.Open
        conn.CommandTimeout = 30000
        Set rs = conn.Execute("Select * from aaa)


    a = rs(0)
    Do While Not rs.EOF
    msgbox(a)               

            rs.MoveNext
                DoEvents
    loop
      
                Set rs = Nothing
            rs.Close
        conn.Close

     
    End Sub

    請問VB.NET要怎麼類似寫這樣的程式呢,謝謝

    2008年3月30日 上午 12:57
  •  

    :::

    Imports System.Data.SqlClient
    Public Class Form1

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim cn As New SqlConnection("server=db;database=aaa;user id=sa;password=abc")
            Dim cmd As New SqlCommand("Select * from aaa", cn)

            cn.Open()
            Dim dr As SqlDataReader = cmd.ExecuteReader

            Do While dr.Read
                MessageBox.Show(dr(0))
            Loop

            cn.Close()
            cn = Nothing
        End Sub
    End Class

    2008年3月30日 上午 03:06
  • 恩~

    .Net 只有包裝自己電腦的網域。

     

    要查詢別台電腦的話,呼叫 nbtstat 然後用 > 輸出轉向到文字檔,或是用 console.Read* 這個類別會比較方便。

     

    不然就要呼叫 API ~

     

    不過也要目標電腦有在線上才有作用,若是只要查 IP 的話,DNS 這個類別也會對 WINS 查詢,所以只查 IP 會比較簡單,當然,也是目標電腦要在線上,才會動態對 WINS 註冊或透過網路芳鄰廣播。

     

    2008年3月30日 上午 07:10
    版主
  • 小琳大大 真是太謝謝您了,等我進公司後,我會測試看看的

    再請教有什麼方法可以偵測該電腦是哪一種domain嗎

    謝謝,謝謝,再次謝謝您們~

    2008年3月30日 上午 07:12