Avatar billede jelle Nybegynder
02. januar 2001 - 17:02 Der er 23 kommentarer og
1 løsning

Finde ip udfra computernavn

Nu håber jeg ikke at dette spørgsmål kommer to gange, for mit andet blev væk!
Jeg prøver igen:

Hvordan finder jeg en computers IP-adresse udfra dens computernavn?
Avatar billede cstern Nybegynder
02. januar 2001 - 17:07 #1
hvis det er din egen PC kan du gå ind på www.myip.com hvis det er en fremmed computer kan du taste nummeret ind på http://www.dk-hostmaster.dk/res2IPno.shtml
(det kan du også med din egen PC hvis den er registreret i DNS).
Avatar billede cstern Nybegynder
02. januar 2001 - 17:08 #2
jeg mente selvfølgelig navnet (men man kan også taste nummeret)
Avatar billede jelle Nybegynder
02. januar 2001 - 17:14 #3
Nej - det er over netværk!
Avatar billede neess Nybegynder
02. januar 2001 - 17:19 #4
du skriver
ping COMPUTERNAVN.
Så pinger den, den anden pc. Og du for på den måde dens ip adresse..Helt klart den letteste måde
Avatar billede cstern Nybegynder
02. januar 2001 - 17:19 #5
Nåeh, hvis du mener om der er en mapping mellem MS-network navnet og IP adressen så er svaret nej. Du kan mao ikke finde IP adressen hvis du kun kender maskinens MS-network navn.
Avatar billede cstern Nybegynder
02. januar 2001 - 17:20 #6
ness - godt forslag!
Avatar billede neess Nybegynder
02. januar 2001 - 17:23 #7
Er ikke et godt forslag det virker..Så du kan ikke sige det er umuligt..
Avatar billede mrcorex Nybegynder
02. januar 2001 - 17:31 #8
cstern og neess: Har I set kategorien?
Avatar billede neess Nybegynder
02. januar 2001 - 17:33 #9
Nååå i vil lave et program til at finde IP oder was.
Avatar billede cstern Nybegynder
02. januar 2001 - 17:36 #10
neess - nej, nej rolig - jeg tager mine ord i mig igen (jeg mente faktisk at det var et godt forslag fordi det virkede - de to ting er vel ikke uforenelige?)

corex - jeg har set kategorien (nu). Der er jeg lost.
Avatar billede neess Nybegynder
02. januar 2001 - 17:44 #11
har ikke brugt visual basic så kende ikke til det..Arbejder kun lidt med java programmering.Så kan ikke hjælpe dig med et program.
Avatar billede mrcorex Nybegynder
02. januar 2001 - 17:50 #12
Se på dette link. Her står det hele.

http://www.mvps.org/vbnet/code/network/ping.htm
Avatar billede jennemaan Nybegynder
03. januar 2001 - 17:18 #13
Man kunne f.eks. anvende winsock controllen (følger med vb som standard control).

Tilføj Winsock controllen til en form (som Winsock1)

Tilføj følgende i form koden:

Option Explicit


Private Sub Form_Load()
    Set mySock = Me.Winsock1
    With mySock
        .RemoteHost = InputBox(\"Input host name\")
        .RemotePort = InputBox(\"Remote Port (eg. 80)\", , 80)
        .Connect
    End With
End Sub

Private Sub winsock1_Connect()
    MsgBox mySock.RemoteHostIP
End Sub


Private Sub winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
    MsgBox Description
End Sub

:)

/Jennemaan
Avatar billede jennemaan Nybegynder
03. januar 2001 - 17:23 #14
Ups :)

Du skal selvfølgelig erstatte mySock med Winsock1

:)

/Jennemaan
Avatar billede jennemaan Nybegynder
03. januar 2001 - 17:24 #15
Således :)

Option Explicit


Private Sub Form_Load()
   
    With Winsock1
        .RemoteHost = InputBox(\"Input host name\")
        .RemotePort = InputBox(\"Remote Port (eg. 80)\", , 80)
        .Connect
    End With
End Sub

Private Sub winsock1_Connect()
    MsgBox Winsock1.RemoteHostIP
End Sub


Private Sub winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
    MsgBox Description
End Sub
Avatar billede jelle Nybegynder
03. januar 2001 - 19:38 #16
Hvis jeg prøver at køre overstående kode, indtaster computernavnet, for jeg følgende besked:
Connection is forcefully rejected

Jeg kan ikke rigtigt forstå den, hvad betyder den?
...Og hvad gør jeg forkert?
Avatar billede jennemaan Nybegynder
04. januar 2001 - 10:26 #17
Du skal som remote port sætte en port der er åben på den pågældende maskine.

Alternativt skal du droppe winsock kontrolle og kaste dig ud i lidt winsockprogrammering :)

F.eks.:
---modHostInfo.bas---
Option Explicit

Public Const IP_SUCCESS As Long = 0
Public Const MAX_WSADescription As Long = 256
Public Const MAX_WSASYSStatus As Long = 128
Public Const WS_VERSION_REQD As Long = &H101
Public Const WS_VERSION_MAJOR As Long = WS_VERSION_REQD \\ &H100 And &HFF&
Public Const WS_VERSION_MINOR As Long = WS_VERSION_REQD And &HFF&
Public Const MIN_SOCKETS_REQD As Long = 1
Public Const SOCKET_ERROR As Long = -1

Public Type WSADATA
  wVersion As Integer
  wHighVersion As Integer
  szDescription(0 To MAX_WSADescription) As Byte
  szSystemStatus(0 To MAX_WSASYSStatus) As Byte
  wMaxSockets As Long
  wMaxUDPDG As Long
  dwVendorInfo As Long
End Type

Private Declare Function gethostbyname Lib \"WSOCK32.DLL\" _
  (ByVal hostname As String) As Long
 
Private Declare Sub CopyMemory Lib \"kernel32\" _
  Alias \"RtlMoveMemory\" _
  (xDest As Any, _
  xSource As Any, _
  ByVal nbytes As Long)

Private Declare Function lstrlenA Lib \"kernel32\" _
  (lpString As Any) As Long

Public Declare Function WSAStartup Lib \"WSOCK32.DLL\" _
  (ByVal wVersionRequired As Long, _
    lpWSADATA As WSADATA) As Long
   
Public Declare Function WSACleanup Lib \"WSOCK32.DLL\" () As Long

Public Function SocketsInitialize() As Boolean

  Dim WSAD As WSADATA
  Dim success As Long
 
  SocketsInitialize = WSAStartup(WS_VERSION_REQD, WSAD) = IP_SUCCESS
   
End Function


Public Sub SocketsCleanup()
 
  If WSACleanup() <> 0 Then
      MsgBox \"Windows Sockets error occurred in Cleanup.\", vbExclamation
  End If
   
End Sub


Public Function GetIPFromHostName(ByVal sHostName As String) As String
  Dim nbytes As Long
  Dim ptrHosent As Long 
  Dim ptrName As Long   
  Dim ptrAddress As Long
  Dim ptrIPAddress As Long
  Dim sAddress As String
  sAddress = Space$(4)
  ptrHosent = gethostbyname(sHostName & vbNullChar)
  If ptrHosent <> 0 Then
      ptrAddress = ptrHosent + 12
      CopyMemory ptrAddress, ByVal ptrAddress, 4
      CopyMemory ptrIPAddress, ByVal ptrAddress, 4
      CopyMemory ByVal sAddress, ByVal ptrIPAddress, 4

      GetIPFromHostName = IPToText(sAddress)

  End If
 
End Function


Private Function IPToText(ByVal IPAddress As String) As String

  IPToText = CStr(Asc(IPAddress)) & \".\" & _
              CStr(Asc(Mid$(IPAddress, 2, 1))) & \".\" & _
              CStr(Asc(Mid$(IPAddress, 3, 1))) & \".\" & _
              CStr(Asc(Mid$(IPAddress, 4, 1)))
             
End Function


---

Smid dette i et modul og skriv følgende i debug-vinduet (immediate window)

\"?GetIPFromHostName(\"microsoft.com\")\"
Resulterer i
\"207.46.230.219\"


/Jennemaan :)
Avatar billede jelle Nybegynder
04. januar 2001 - 20:02 #18
Hvad skal jeg gøre, hvis jeg vil trykke på en knap, og derved få en Inputbox op, hvor jeg kan skrive computernavn. Til sidst få en msgbox med ip-adressen?
Avatar billede chris2k Nybegynder
04. januar 2001 - 21:01 #19
(i knappes click event):
Public Sub Command1_Click
MsgBox GetIPFromHostName(Text1)
End Sub

så skal der bare tilføjes en tekstbox
Avatar billede jennemaan Nybegynder
04. januar 2001 - 21:06 #20
Alternativt:

Public Sub Command1_Click
MsgBox GetIPFromHostName(InputBox(\"Indtast Hostnavn:\"))
End Sub

/Jennemaan :)

Avatar billede chris2k Nybegynder
04. januar 2001 - 21:42 #21
Jaja, bare stjæl mit svar : )

Jeg hader InputBox, det ser så uprofessionelt ud.
Avatar billede chris2k Nybegynder
04. januar 2001 - 22:17 #22
Hvorfor har du afvist mit svar?
Avatar billede jelle Nybegynder
05. januar 2001 - 14:27 #23
Fordig, jeg spurte om: hvis jeg vil trykke på en knap, og derved få en Inputbox op

Og for øvrigt, er det Jennemaans kode jeg giver point for
Avatar billede chris2k Nybegynder
05. januar 2001 - 14:30 #24
Okay...de er lidt spildt givet ud...prøv at søg på nettet efter det spøgsmål...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester