Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
208to212
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
208to212
208to212
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

IP Adresse

IP Adresse
28.01.2003 12:48:16
Dietmar
Mein Problem:
Ich möchte gern meine sich standig ändernde IP (DFÜ)
bei jeder neu Anwahl)zu Bekannten Mailen.

Hier nun der VBA-Code

Private Declare Function gethostname Lib "WSOCK32.DLL" (ByVal _
HostName$, ByVal HostLen%) As Long

Private Declare Function gethostbyname Lib "WSOCK32.DLL" _
(ByVal HostName$) As Long

Private Declare Function gethostbyaddr Lib "WSOCK32.DLL" _
(ByVal addr$, ByVal laenge%, ByVal typ%) As Long

Private Declare Sub RtlMoveMemory Lib "kernel32" (hpvDest As _
Any, ByVal hpvSource&, ByVal cbCopy&)

Type HOSTENT
hName As Long
hAliases As Long
hAddrType As Integer
hLength As Integer
hAddrList As Long
End Type

Private Type HostDeType
hName As Long
hAliases As Long
hAddrType As Integer
hLength As Integer
hAddrList As Long
End Type


Private Function HostByName() As String
Dim MemIp() As Byte
Dim Y%
Dim HostDeAddress&, HostIp&
Dim IPAddress$
Dim HOST As HostDeType

HostDeAddress = gethostbyname(Name)
If HostDeAddress = 0 Then
HostByName = ""
Exit Function
End If

Call RtlMoveMemory(HOST, HostDeAddress, LenB(HOST))

For Y = 0 To X
Call RtlMoveMemory(HostIp, HOST.hAddrList + 4 * Y, 4)
If HostIp = 0 Then
HostByName = ""
Exit Function
End If
Next Y

ReDim MemIp(1 To HOST.hLength)
Call RtlMoveMemory(MemIp(1), HostIp, HOST.hLength)

IPAddress = ""

For Y = 1 To HOST.hLength
IPAddress = IPAddress & MemIp(Y) & "."
Next Y

IPAddress = Left$(IPAddress, Len(IPAddress) - 1)
HostByName = IPAddress
End Function

Sub IPAdresse()

IP = HostByName

End Sub

Dieser Code gibt nur meine lokale IP (von der Netzwerkkarte) zurück.

Ich hoffe das mir jemand helfen kann
Dank Dietmar

PS: VBA Code habe ich aus HERBER.DE (hier schon einmal Dank an herber.de)

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: IP Adresse
31.01.2003 21:12:04
ChristianG

Hallo Dietmar,

ich habe ein ähnliches Problem, da ich einen Router benutze und daher auch nicht so einfach an die IP rankomme.

Hier mal als Ansatz ein schnell aufgezeichnetes Makro:

http://whatismyip.com zeigt mir meine IP-Adresse, die wird dann in eine andere Tabelle kopiert und soll per email verschickt werden. Leider hänge ich beim email verschicken fest....liegt aber evtl. daran, dass ich Eudora benutze. Mit Outlook geht es glaube ich einfacher.

...aber die IP habe ich schon mal...ist nicht ganz so schön, aber einfach und funktioniert...wäre schön, wenn Du mir das email versenden zeigen kannst.

Gruß
Christian

Anzeige
an Christian
02.02.2003 16:36:23
Dietmar

Hi Christian
mein Problem mit der IP-Adresse habe ich wie folgt gelöst:

Private Declare Function gethostname Lib "WSOCK32.DLL" (ByVal _
HostName$, ByVal HostLen%) As Long

Private Declare Function gethostbyname Lib "WSOCK32.DLL" _
(ByVal HostName$) As Long

Private Declare Function gethostbyaddr Lib "WSOCK32.DLL" _
(ByVal addr$, ByVal laenge%, ByVal typ%) As Long

Private Declare Sub RtlMoveMemory Lib "kernel32" (hpvDest As _
Any, ByVal hpvSource&, ByVal cbCopy&)

Private Type HostDeType
hName As Long
hAliases As Long
hAddrType As Integer
hLength As Integer
hAddrList As Long
End Type
Private Function HostByName() As String
Dim MemIp() As Byte
Dim Y%
Dim HostDeAddress&, HostIp&
Dim IPAddress$
Dim HOST As HostDeType

HostDeAddress = gethostbyname(Name)
If HostDeAddress = 0 Then
HostByName = ""
Exit Function
End If
Call RtlMoveMemory(HOST, HostDeAddress, LenB(HOST))
For X = 0 To 1 '0 = die erste IP, 1 = die zweite IP
For Y = i To X
Call RtlMoveMemory(HostIp, HOST.hAddrList + 4 * Y, 4)
If HostIp = 0 Then
HostByName = ""
Exit Function
End If
Next Y
ReDim MemIp(1 To HOST.hLength)
Call RtlMoveMemory(MemIp(1), HostIp, HOST.hLength)
IPAddress = ""
For Y = 1 To HOST.hLength
IPAddress = IPAddress & MemIp(Y) & "."
Next Y
IPAddress = Left$(IPAddress, Len(IPAddress) - 1)
HostByName = IPAddress
Sheets(1).Cells(X + 1, 1) = IPAddress
Next X
End Function


Aber mit Outlook(SP1) habe ich jetzt noch ein Problem, die Sicherhietseinstellung von Outlook verhindert das automatisch versenden der Mail, es kommt immer die Meldung hoch ein fremdes Program versucht auf Outlook zuzugreifen, diese Melgung muß ich mit JA bestätigen dann wird die Mail auch gesendet.
Ich weiß nur noch nicht wie man diese Meldung umgehen, oder abschalten kann.

Gruß Dietmar
PS.: wäre schön wenn mir jemand helfen könnte.
wenn möglich sehrgenau da ich nicht so gut im Programmieren bin und mein Englisch sehr schlecht ist.

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige