Ongelma:
Hakea kaikki domainit, joissa on vähintään 8merkkiä. Ja siten selvittää, mitkä domainit ovat vapaana.
Eli miten saisi aikaan yksinkertaisen taulukon, joka listaisi vapaat domainit lyhimmästä pisimpään?
Kiitos vastauksistanne!
Mietihän hiukan, kuinka pitkä lista tuosta tulis.
Jos kukin kaheksan merkkiä voidaan valita 26 tavalla, on vaihtoehtoja 26^8 eli 208 827 064 576 (kakssataakaheksanmiljardia) kappaletta. Noista vain murto-osa on varattuna (ne kaikki selkokieliset ;P), joten saisit jumalattoman pitkän listan merkityksettömiä kirjainyhdistelmiä (enxbdfuht.com anyone? On muuten vapaana.)
Ja vielä vettä myllyyn. Alkuperäisessä kysymyksessä on mainittu kaikki domainit joissa on VÄHINTÄÄN kahdeksan merkkiä. Mikäli domainnimen pituutta ei ole määritetty, saadaan aikaan äärettömän pitkän listan tekevä kone.
Päätason domainien huomioonottaminen jäi myös pois kuvioista. Ei voi kaikkien olettaa olevan pelkkää .comia :) .netin mukaan ottaminen kasvattaa määrät taas kaksinkertaiseksi, .org kolminkertaisiksi ja niin edelleen.
Nopeammin pääsee sillä että hankkii käsiinsä sanalistauksen ja alkaa sitten siitä katsoa mitä löytyy ja mitä ei. Sitten vaan yhteyttä DNS-palveluihin ja utelemaan onko domainia olemassa.
Vettä myllyyn osa 2. Domainin maksimipituus 255 oktettia (?) - ei siis äärettömän pitkä lista kuitenkaan.
Kiitos oikaisuista!
Tulipas pikkuinen typo kysymykseen (vähintään pitäisi olla enintään).
Tehdään ongelmasta realistisempi:
Miten tekisitte taulukon domaineista, joiden pituus on täsmälleen 5kirjainta ja joiden pääte on com? Kirjaimia, joita saa käytää, on 10: a, b, d, e, f, g, h, i, l ja o. Domainin nimessä myös saa olla max kaksi vokaalia tai konsonanttia peräkkäin.
Domain nimestä:
Min. 2 merkkiä
Max. 63 merkkiä
Kansainvälisissä domaineissa ei ole sallittu erikoismerkkejä joten voidaan silloin sanoa, että vain a-z ja 0-9 ovat sallittuja merkkejä. Jotkin domain päätteet hyväksyvät myös yhden merkin mittaisia domain nimiä, mutta ne on yleensä jo varattuja.
Jos päättää tehdä paljon kyselyitä, niin DNS ei ole oikea paikka (eikä muutenkaan, koska ne eivät ole luotettavia kyseiseen tarkoitukseen). Vain whois -palvelimet osaavat kertoa onko domain varattu vai ei, mutta niissä on monesti rajoituksia joilla yhdestä IP-osoitteesta voidaan tehdä rajattu määrä kyselyjä / aikasykli.
Mitä tulee taas alkuperäiseen kysymykseen täydennetyllä ohjeistuksella, niin tuo on helppo tehdä loopeilla, mutta listasta tulee edelleen suhteellisen pitkä. Whois -palvelimilta ei taida yksityiset saada suoraan vastausta millään tuollaiseen listaan(?).
-W-
Voipi tulla whois-palvelimilta nopeasti bänni, jos koko ajan pollaa niitä peräkkäin kyselyillä.
Miten tuon loopeilla saa aikaan?
Listan pituuttahan voi sitten pienentää laittamalla tiettyjä avainsana vaatimuksia, kun tiedetään minkä alan domainia halutaan. Esimerkiksi pelkästään sanayhdistelmä "bar" rajaa listan pituutta merkittävästi 5kirjaimisessa nimessä. Näin listaan tulisi vain vapaat domainit esim --bar, -bar- ja bar--, jossa - on kirjain.
Avainsanavaatimuksia lisäämällä saadaan taas itse koodia pidennettyä ja monimutkaistettua.
Voisitko kertoa mitä olet oikeasti tekemässä, jotta voimme lytätä idean lyttyyn jo ennen alkua.
Listata 5kirjainta pitkät vapaat com-domainit, jotka sisältävät esim tuon termin "bar". Näin listan pituus on maksimissaan 1024, kun käytetään vain näitä kirjaimia a, b, d, e, f, g, h, i, l ja o. Myös se, että suuri osa lyhyistä domaineista on jo varattu lyhentää listaa. Mahdollisesti listan pituus puolittuu. Näin 512 vapaasta domainista on helpompi valita kuin 5merkkisestä täydellisestä listasta (1.5 * 10^8 vaihtoehtoa).
Tämä listaa kaikki 2-kirjaimiset com-"domainit". Soveltaminen ei pitäisi olla vaikeaa, laittaa vain lisää sisäkkäisiä silmukoita.
Tuon viimeksi mainitsemasi listan tekeminen vaatii vähän enemmän koodia.
Kiitos!
Tuosta sain heti idean, kuinka soveltaa.
Helpompi (mutta joillain kielillä ehkä havaittavasti hitaampi) on hyödyntää Antin rekursio-oppaan saloja, opas sisältää myös PHP-esimerkit.
Mielenkiintoinen idea tuo rekursio.
Tuota Antin yhdistelmä funktiota ehkä voisi käyttää kirjaimille jotenkin.
Millä ping functionalla tuo yhteystestaus pitää muodostaa (vapaiden domainien löytämiseksi), kun lista rajatuista domaineista on tiedossa?
Etsin tältä sivulta: https://www.php.net/manual-lookup.php?pattern=ping&lang=en
mutta en löytänyt oikeaa funktiota.
Aihe on jo aika vanha, joten et voi enää vastata siihen.