Örnek: Winsock.exe HostAddress Windows Sockets kullanarak alma

Makale çevirileri Makale çevirileri
Makale numarası: 154512 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Özet

Bu makalede, Windows Sockets kullanarak bir makine HostAddress nasıl edinilir gösterilmektedir. TCP/IP ağ iletişim kuralları, tüm Windows işletim sistemleri ile birlikte gelir ve ınternet uyumluluğunu giderek daha önemli olma. Windows Sockets TCP/IP ile çalışır ve ana bilgisayar adı veya IP adresini makine gibi bilgileri sağlamak için bir API vardır. Bu ilgili DNS varlığını açıktır bağımlı veya WINS sunucuları ve TCP/IP iletişim kuralı yükleniyor. Aşağıda örnek bir makine HostAddress extract nasıl gösteriliyor.

Aşağıdaki dosya Microsoft Yükleme Merkezi'nden yüklenebilir:
Winsock.exe
Microsoft destek dosyalarını karşıdan yükleme konusunda ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
119591Microsoft Destek Dosyaları Çevrimiçi Hizmetler'den Nasıl Alınır
Microsoft bu dosyada virüs taraması yapmıştır. Microsoft, dosyanın kullanıma sunulduğu tarihteki en güncel virüs tarama yazılımını kullanmıştır. Dosya, üzerinde herhangi bir yetkisiz değişiklik yapılmasını engellemeye yardım eden geliştirilmiş güvenliğe sahip sunucularda depolanır.

Daha fazla bilgi

Not: Bu kodu aşağıdaki az sürüm 1.1 Windows Sockets.
  1. Yeni bir proje için Visual Basic'te başlatın. Varsayılan olarak, Form1 oluşturulur.
  2. Bir KomutDüğmesi, forma yerleştirin.
  3. Aşağıdaki kodu Form1 kod penceresine ekleyin:
          Option Explicit
    
          Private Const WSADescription_Len = 256
          Private Const WSASYS_Status_Len = 128
          Private Const SOCKET_ERROR As Long = -1
    
          Private Type WSADATA
             wversion As Integer
             wHighVersion As Integer
             szDescription(0 To WSADescription_Len) As Byte
             szSystemStatus(0 To WSASYS_Status_Len) As Byte
             iMaxSockets As Integer
             iMaxUdpDg As Integer
             lpszVendorInfo As Long
          End Type
    
             Private Declare Function gethostname Lib "WSOCK32.DLL" (ByVal hostname$, _
       ByVal HostLen As Integer) As Long
    
          Private Declare Function WSAGetLastError Lib "WSOCK32.DLL" _
             () As Long
          Private Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal _
             wVersionRequired as Integer, lpWSAData As WSADATA) As Long
          Private Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
    
          Sub Form_Load()
            Call SocketsInitialize
          End Sub
    
          Private Sub Command1_click()
            Dim hostname$, HostLen&
            HostLen& = 256
            hostname$ = Space$(HostLen&)
            If gethostname(hostname$, HostLen&) = SOCKET_ERROR Then
                MsgBox "Windows Sockets error" & Str(WSAGetLastError())
            Else
                hostname$ = Trim$(hostname$)
                hostname$ = Left$(hostname$, Len(hostname$) - 1)
                MsgBox "Host name  = " & hostname$
            End If
            SocketsCleanup
          End Sub
    
          Sub SocketsInitialize()
            Const WS_VERSION_REQD As Integer = &H101
            Const WS_VERSION_MAJOR = WS_VERSION_REQD \ &H100 And &HFF&
            Const WS_VERSION_MINOR = WS_VERSION_REQD And &HFF&
            Const MIN_SOCKETS_REQD = 1
            Dim WSAD As WSADATA
            Dim iReturn As Integer
            Dim sLowByte As String, sHighByte As String, sMsg As String
            iReturn = WSAStartup(WS_VERSION_REQD, WSAD)
            If iReturn <> 0 Then
                MsgBox "Winsock.dll is not responding."
                End
            End If
            If lobyte(WSAD.wversion) < WS_VERSION_MAJOR Or (lobyte _
              (WSAD.wversion) = WS_VERSION_MAJOR And hibyte(WSAD.wversion) _
              < WS_VERSION_MINOR) Then
              sHighByte = Trim$(Str$(hibyte(WSAD.wversion)))
              sLowByte = Trim$(Str$(lobyte(WSAD.wversion)))
              sMsg = "Windows Sockets version " & sLowByte & "." & sHighByte
              sMsg = sMsg & " is not supported by winsock.dll "
              MsgBox sMsg:
              End
         End If
         If WSAD.iMaxSockets < MIN_SOCKETS_REQD Then
           sMsg = "This application requires a minimum of "
           sMsg = sMsg & Trim$(Str$(MIN_SOCKETS_REQD)) & _
           " supported sockets."
           MsgBox sMsg
           End
         End If
          End Sub
    
          Function hibyte(ByVal wParam As Integer)
             hibyte = wParam \ &H100 And &HFF&
          End Function
    
          Function lobyte(ByVal wParam As Integer)
             lobyte = wParam And &HFF&
          End Function
    
          Sub SocketsCleanup()
            Dim lReturn As Long
            lReturn = WSACleanup()
            If lReturn <> 0 Then
              MsgBox "Socket error " & Trim$(Str$(lReturn)) & _
       " occurred in Cleanup"
              End
            End If
          End Sub
    
    						
  4. Proje çalıştırmak için F5 tuşuna basın. Form üzerinde ana bilgisayar adının yazdırılacağı.

Özellikler

Makale numarası: 154512 - Last Review: 5 Ağustos 2004 Perşembe - Gözden geçirme: 3.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
Anahtar Kelimeler: 
kbmt kbdownload kbfile kbhowto kbsample kbwinsock KB154512 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:154512

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com