1.獲取當前電腦名:System.Net.Dns.GetHostName()

創新互聯公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都做網站、網站制作、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的新都網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
2.根據電腦名取出全部IP地址:System.Net.Dns.Resolve(電腦名).AddressList
或者 System.Net.Dns.GetHostByName(電腦名).AddressList
3.根據IP地址取出電腦名:System.Net.Dns.Resolve(IP地址).HostName
你這段代碼可以獲得該主機名下的所有ip,每個ip地址都是有類型簇的,可以區別本地地址和網絡地址、ip6地址。
你獲取索引為0的ip,不一定是正確的網絡地址,它有時順序在中間,在后面。
應該獲取所有ip,再通過ip地址簇類型區分
判斷連接本身有一個函數,不過有時沒聯網也是真。
可以用ping,ping百度、ping訪問速度快、不經常維護斷線的網絡主機。
你最好可以換臺電腦訪問網址看獲取IP地址狀況。
如果你測試訪問的時候,使用的是 localhost 進行訪問的,那么服務器端獲得的也就是127.0.0.1,因為localhost是一個環路地址,特殊的.如果你是通過你的ip地址進行訪問的,那么獲得的IP地址就會是正確的了. 要通過自己本地的IP進行訪問,在控制面板的網絡連接里找到本地連接,查看它的屬性,并找到"詳細信息"按鈕,點擊后彈出的對話框中IPV4地址就是本地地址.或打開命令行,輸入 ipconfig /all 即可找到本地地址.在瀏覽器中通過這個IP地址訪問,就不會是127.0.0.1了.
這兒有一個C#的參考
我給改寫成了VB.net?看看你能用上不?
Imports System.Diagnostics
Imports System.Text.RegularExpressions
Module mdlIpDns
Public Function RunCMD(ByVal FileName As String, ByVal Arguments As String, ByVal RecordLog As Boolean) As String
REM 運行一個控制臺程序并返回其輸出參數
Try
If RecordLog = True Then Trace.WriteLine(FileName + " " + Arguments)
Dim myProc As Process = New Process
myProc.StartInfo.FileName = FileName
myProc.StartInfo.CreateNoWindow = True
myProc.StartInfo.Arguments = Arguments
myProc.StartInfo.RedirectStandardOutput = True
myProc.StartInfo.UseShellExecute = False
myProc.Start()
Dim myStreamReader As System.IO.StreamReader = New System.IO.StreamReader(myProc.StandardOutput.BaseStream, System.Text.Encoding.Default)
Dim myText As String = myStreamReader.ReadToEnd
myStreamReader.Close()
If RecordLog = True Then Trace.WriteLine(myText)
If Not myProc.HasExited Then myProc.Kill()
Return myText
Catch ex As Exception
Trace.WriteLine(ex.ToString)
Return vbNull
End Try
End Function
Public Function GetAllIp() As String
REM 獲取本機全部網卡的IP地址
GetAllIp = ""
Dim Address() As System.Net.IPAddress
Dim i As Integer
Address = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()).AddressList
For i = 0 To UBound(Address)
GetAllIp = GetAllIp (Chr(13) Address(i).ToString())
Next
End Function
Public Function GetPrimaryDNS() As String
REM 獲取本機主DNS
GetPrimaryDNS = ""
Dim m As System.Text.RegularExpressions.Match
Dim myResult As String = RunCMD("nslookup", "", True) '需要RunCMD.mdl
m = Regex.Match(myResult, "\d+\.\d+\.\d+\.\d+")
If m.Success Then
Return m.Value
Else
Return vbNull
End If
End Function
Public Function GetLocalIP() As String
REM 獲取本機正在使用的IPv4地址
REM 1.一個電腦有多個網卡,有線的、無線的、還有VMare虛擬的兩個網卡。
REM 2.就算只有一個網卡,但是該網卡配置了N個IP地址.其中還包括IPv6地址。
REM 3.下面通過查詢本機路由表,獲取訪問默認網關時使用的網卡IP。
Dim m As System.Text.RegularExpressions.Match
Dim myResult As String = RunCMD("route", "print", True) '需要RunCMD.mdl
m = Regex.Match(myResult, "0.0.0.0\s+0.0.0.0\s+(\d+.\d+.\d+.\d+)\s+(\d+.\d+.\d+.\d+)")
If m.Success Then
Return m.Groups(2).Value
Else
Try
Dim myTcpClient As System.Net.Sockets.TcpClient = New System.Net.Sockets.TcpClient
myTcpClient.Connect("", 80) '連接百度判斷IP
Dim myIpPoint As System.Net.IPEndPoint = myTcpClient.Client.LocalEndPoint
Dim myIp As String = myIpPoint.Address.ToString
myTcpClient.Close()
Return myIp
Catch ex As Exception
Return vbNull
End Try
End If
End Function
End Module
MsgBox(System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName).AddressList(0).ToString)這是vb2008里面的格式,這是顯示自己的IP,不知你是想要獲取哪些IP 呢
至少需要
Imports?System
Imports?System.Net
Imports?System.Net.Sockets
Imports?System.Threading
Imports?System.Text
還要了解異步與委托
簡單點的話
sub?tcplisten()?'監聽過程
Const?LPort?As?Integer?=?6850?'本地監聽端口
Dim?IPadd?As?IPAddress?=?Dns.GetHostEntry(Dns.GetHostName()).AddressList(1)?’本地IP
'addresslist里面包括IPV6和IPV4
Dim?IPEP?As?New?IPEndPoint(IPadd,?LPort)?'結點
TCPL?=?New?TcpListener(IPEP)?’建立監聽實例
TCPL.Start()?'開始監聽
If?TCPL.Pending?=?True?Then?'如果有連接接入
Dim?TCPLX?As?New?Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp)?'建立一個新的SOCKET
TCPLX=TCPL.Accept()?’將第一個接入掛起的連接傳給新建SOCKET,因為監聽的SOCKET還要繼續監聽
dim?Ripep?as??new?ipendpoint=TCPLX.RemoteEndPoint?'此時獲得遠程的ip與端口號
listbox.add(ripep.ip)
dim?buff?as?byte()
buff=TCPLX.Receive()?'listenacceptrecieve這時候可以接受數據了
dim?s?as?string=Encoding.Default.GetString(buff)?'轉換成文本
msg?"s"
TCPLX.send(buff)?'這個是發送
end?if
End?Sub
長時間沒寫,可能有點小錯誤,你自己調試調試,大概步驟就是listenacceptrecieve,最好看看msdn,那個學起來才系統
名稱欄目:vb.netipv6 vb·net
文章出自:http://www.yijiale78.com/article24/hihcje.html
成都網站建設公司_創新互聯,為您提供網站收錄、網站策劃、網站設計公司、服務器托管、網站營銷、網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯