Visual basic prüfen ob internet domain noch frei

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Manawyrm.

    Visual basic prüfen ob internet domain noch frei

    Guten tag,

    ich bin gerade dabei ein Programm zu schreiben indem man prüfen kann ob eine Domain (z.b. vb-paradise.de) noch vorhanden ist. (Also ob man sie noch kaufen kann oder ob sie schon registriert ist.
    Meine erste und auch einzigste idee zu prüfen ob eine domain registriert ist, ist..

    Visual Basic-Quellcode

    1. Try
    2. Dim host = Net.Dns.GetHostEntry("DOMAIN")
    3. MsgBox("gibt es schon")
    4. Catch
    5. MsgBox("gibt es nicht") 'falls ein fehler auftritt z.B. keine IP gefunden
    6. End Try


    bei den meisten domains geht das auch aber bei vielen eben auch nicht. Bei manchen wird keine IP gefunden obwohl die domain schon registriert ist.

    Also hat jemand eine idee wie man das prüfen kann?

    Mfg
    Zum Prüfen des Registrierungsstatuses von Domains gibt es nur eine Sichere Methode, dass ist der Whois.

    Nach RFC3912 ist das zu implementieren. Keine Sorge, das Protokoll ist wirklich bescheuert simpel :)

    Bei der Denic ist der entsprechende Server whois.denic.de, Port ist 43. Einfach per Plaintext TCP (kann man mal mit Telnet/PuTTY testen) den Domainnamen hinschicken und einen Zeilenumbruch.
    Die Whois-Antwort wird zurückgegeben.

    Connect ist belegt, free free und es gibt noch invalid für Fehler.

    Das einzige Problem bei der Sache ist, dass du bei den meisten Registries wie der DeNIC oder EuRID nur eine begrenzte Anzahl Requests pro Minute/IP machen darfst.
    Je nachdem, wie viele Requests du machen möchtest, oder wenn du das Interface z.B. Kunden zur Verfügung stellen möchtest, solltest du vielleicht mal deinen Domainprovider fragen, ob er eine Schnittstelle/API zum Whois hat.
    Die meisten können (zumindest für Reseller) ein Whois-Proxydienst anbieten.

    Viele Grüße,
    Manawyrm

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Manawyrm“ ()

    mm danke für beide Antworten nur leider ist keine davon für mich sehr hilfreich.
    @Manawyrm ich habe schon wegen einer anderen sache meinen Domainprovider darum gebeten jedoch war das nicht möglich.
    und mit dem begriff WebRequest habe ich nichts anfangen können und als ich mir ein paar tutorials durchgelesen habe, habe ich immer noch nicht verstanden wie das gaze geht.
    Hat jemand noch andere ideen oder kann mir das mit dem WebRequest erklären?
    mfg

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „PikaLP“ ()

    Wie oft willst du feststellen,

    PikaLP schrieb:

    ob man sie noch kaufen kann oder ob sie schon registriert ist
    :?:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB.NET-Quellcode

    1. Dim mysqladapter As New MySqlDataAdapter
    2. Dim sqlquary = "SELECT `Link` FROM `Links` WHERE `status` = 0 LIMIT 0,10"
    3. Dim Command As New MySqlCommand
    4. Command.Connection = conn
    5. Command.CommandText = sqlquary
    6. mysqladapter.SelectCommand = Command
    7. Dim mydata As MySqlDataReader
    8. mydata = Command.ExecuteReader
    9. While mydata.Read()
    10. ListBox1.Items.Add(mydata(0))
    11. End While
    12. conn.Close()
    13. Button3_Click(Nothing, Nothing)


    Sehr viel mehr habe cih noch nicht, da ich nicht wusste wie ich weitermachen soll.
    bis jetzt liest er nur die ersten 10 Links aus einer datenbank.

    Das Programm soll dann die 10 Links (die in der listbox sind) überprüfen und wenn die domin noch frei ist soll der spaltenname "status" in 2 geändert werden.

    VB.NET-Quellcode

    1. conn.CommandText = "UPDATE Links SET status = 2 WHERE Wort = '" + ListBox1.Items.Item(0) + "'"
    2. conn.ExecuteNonQuery()


    und wenn die URL belegt ist, soll 1 drinnen stehen.

    VB.NET-Quellcode

    1. conn.CommandText = "UPDATE Links SET status = 1 WHERE Wort = '" + ListBox1.Items.Item(0) + "'"
    2. conn.ExecuteNonQuery()


    In der Tabelle "Links" stehen etwa 7.000.000 Domains drinnen und jetzt will ich herausfinden welche man davon kaufen kann und welche immer noch in gebrauch sind.

    PikaLP schrieb:

    etwa 20.000x am tag
    brauchen, wenn überhaupt, große Provider wie 1&1 oder Strato, bei denen man solche Domains registrieren kann.
    Diese haben aber auch eine entsprechende Flatrate für solche Anfragen.

    Wenn du kein Registrar bist, wozu in aller Welt benötigst du diese Masse an Anfragen?
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    20.000x am tag

    Holy... Du solltest dir ein anderes Konzept überlegen, oder dafür Bezahlen.
    Geh mal davon aus, dass dich in der Menge 100.000 .de Abfragen etwa 50€ kosten. Ist also wirklich keine gute Möglichkeit so.

    WebRequest zur Denic

    und wenn du wie von SimpleSoft vorgeschlagen 20k HTTP-Requests zur DeNIC machst, wirst du einfach in der Firewall gebannt. Es gibt dazu nicht ohne Grund entsprechende Sondergrenzen ;)

    petaod schrieb:

    ​Diese haben aber auch eine entsprechende Flatrate für solche Anfragen.

    Kleine Insider-Info dazu: Die Menge an abfragen, welche man bei .de und .eu machen kann richtet sich nach der Menge an ein- und aus-gehenden Domaintransfers/CHPROV's.

    Viele Grüße,
    Manawyrm

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Manawyrm“ ()