Mein Grundproblem besteht darin, dass ich eine Tabelle mit zehntausenden vollqualifizierten Domänennamen habe, die ich prüfen muss, ob der FQDN ein gültiger DNS-Eintrag ist das öffentliche Internet. Ich mache eine DNS-Suche für jeden FQDN und möchte einen öffentlichen DNS-Server angeben. Wenn der Aufruf an den DNS eine IP-Adresse zurückgibt, nehme ich an, dass der FQDN gültig ist. Ich arbeite in Excel 64-Bit, aber brauche eine Lösung, die auch in 32-Bit kompilieren und arbeiten wird, also möchte ich den gleichen Quellcode in beide kompiliert werden können. Da in der Tabelle so viele Zeilen vorhanden sind, möchte ich keine Funktion verwenden, die für jede Suche eine temporäre Datei erstellt. (Ich bin OCD über nicht benötigte temporäre Dateien, wenn ein Systemanruf verfügbar ist).Die IP-Adresse in 64-Bit-VBA kann nicht gefunden werden
Ich glaube, dass die Funktion "getaddrinfoex" die Möglichkeit bietet, anzugeben, welcher Nameserver abgefragt wird, aber ich konnte keine VBA - Snippets finden, die getaddrinfoex oder die niedrigere Version von getaddrinfo verwenden (was die Angabe von DNS Server). Ich habe mehrere Beispiele für Aufrufe von gethostbyname gefunden, aber alle sind für 32-Bit-Excel. Außerdem hat Microsoft veröffentlicht, dass gethostbyname veraltet ist (https://msdn.microsoft.com/en-us/library/windows/desktop/ms738524(v=vs.85).aspx), so dass ich versuchte, den empfohlenen Austausch Getaddrinfo
How can I make a network connection with Visual Basic from Microsoft Access?
Das Snippet in der Antwort @ David in der Frage gestellt verwenden ich oben verlinkt sieht Die richtige Syntax muss sowohl 32-Bit als auch 64-Bit-kompatibel sein. Das Beispiel enthielt jedoch nicht den Aufruf von gethostbyname, sondern nur die Deklaration der Funktion.
Ist getaddrinfoex in VBA verfügbar? Hat jemand ein Beispiel für die Verwendung von getaddrinfoex, die in 32-Bit und 64-Bit funktioniert?
Ich würde jede Hilfe zu schätzen wissen. Ich habe nicht in vielen Jahren codiert, so dass meine Fähigkeiten sehr veraltet sind. Daher mache ich viele Suchen, um zu finden, was ich brauche.
Hier ist der Code, den ich aus der Kombination verschiedener Suchen online erstellt habe.
Wenn ich Sie wäre, ich diesen Post überprüfen würde: http://jayteknews.blogspot.no/2011/08/excel-user-defined-function-nslookup.html – tlemaster
Danke für den Vorschlag . Ich habe diesen Beitrag schon einmal angeschaut. Es verwendet eine temporäre Datei für jede DNS-Suche. Da ich diese Tabelle täglich mit mehr als 10.000 FQDN füllen werde und dies für mehrere Wochen tun werde, möchte ich nicht wirklich viele temporäre Dateien erstellen/löschen. Es ist auch eine Geschwindigkeit des Ausführungsproblems. VBA ist nicht die schnellste Sache auf der Welt, wenn Sie eine Funktion mehrmals ausführen und dadurch den Aufwand für das Erstellen/Löschen einer Datei erhöhen, was das Aktualisieren der Tabelle zu langsam macht. – SkiBum