Avatar billede bobbedude Nybegynder
11. juli 2008 - 09:15 Der er 15 kommentarer og
1 løsning

kun domænet ikke subdomænet

hvordan få man fat på kun domænet fra en url der ser sådan ud:


http://www.domain.com/sucker/test.html

eller

http://subdomain.xxx.co.uk/sucker/test.html
Avatar billede bobbedude Nybegynder
11. juli 2008 - 13:03 #1
forsøgte med

Function FindDomain(Url) 
If Url > "" Then 
    FindEnd = False 
    i = 0 
    EndPos = 0 
    Do 
        i = i + 1 
        If FindEnd And Mid(Url,i,1) = "/" Then 
            EndPos = i 
        End If 
        If Not FindEnd And Mid(Url,i,2) = "//" Then 
            FindEnd = True 
            i = i + 1 
        End If 
    Loop Until i >= Len(Url)-1 Or EndPos > 0 
 
    If EndPos > 0 Then 
        FindDomain = Left(Url,EndPos-1) 
    Else 
        FindDomain = Url 
    End If 
End If 
End Function

men den fjerner ikke subdomaine
Avatar billede kabbak Professor
11. juli 2008 - 13:32 #2
nu ved jeg ikke om instr findes i asp
men i vb ville den se sådan ud

Public Function FindURL(url)
FindURL = Left(url, InStr(InStr(1, url, "//") + 2, url, "/") - 1)
End Function
Avatar billede bobbedude Nybegynder
11. juli 2008 - 14:55 #3
instr findes men jeg får fejlen

Invalid procedure call or argument: 'Left'
Avatar billede kabbak Professor
11. juli 2008 - 15:11 #4
Public Function FindURL(url)
    Start = InStr(1, url, "//") + 2' antal tegn til og med //
    Slut = InStr(Start, url, "/") - 1 ' antal tegn til og ikke med første / enkeltstående
    FindURL = Left(url, Slut)
End Function


prøv at se om både start og slut får værdier
Avatar billede jansangill Nybegynder
11. juli 2008 - 20:38 #5
Hvis det kun er domænet du vil have ville dette vel være nok?

Request.ServerVariables("HTTP_HOST")
Avatar billede bobbedude Nybegynder
12. juli 2008 - 13:09 #6
jansangill jo det kunne man men hvordan vil du gøre det når adresserne står i en database ?
Avatar billede bobbedude Nybegynder
12. juli 2008 - 13:13 #7
tester = "http://kjhgfd.ollo.com/"

Public Function FindURL(url)
    Start = InStr(1, url, "//") + 2' antal tegn til og med //
    Slut = InStr(Start, url, "/") - 1 ' antal tegn til og ikke med første / enkeltstående
    FindURL = Left(url, Slut)
End Function

response.write FindURL(tester)

giver http://kjhgfd.ollo.com og jeg vil have ollo.com
Avatar billede bobbedude Nybegynder
12. juli 2008 - 13:29 #8
For lige at gøre det mere latterligt har jeg faktisk domæner som denne også

search.hp.netscape.com el. netgog.com.tw
Avatar billede jansangill Nybegynder
12. juli 2008 - 13:52 #9
Jeg synes den mest åbenlyse måtte være at hvis du har det fra en db, så gem både domænet, og hele url'en i databasen. Altså en felt til domæne og en til url.

Ellers er der jo en masse af tage hensyn til som jeg ikke lige vil bruge min tid på:>
Avatar billede bobbedude Nybegynder
12. juli 2008 - 13:54 #10
jansangill >> Nu er der jo ingen der tvinger dig til at bruge noget tid overhovedet.

Urlerne kommer fra et 3parts program og jeg har ingen indflydelse på det, men glem det nu bare for din tid kan sikkert bruges bedere andet sted.
Avatar billede bobbedude Nybegynder
12. juli 2008 - 14:46 #11
gameover så
Avatar billede jansangill Nybegynder
12. juli 2008 - 17:22 #12
Hvis du kun vil have domænet, er det jo meget svært, fordi en domænet kan jo både være

test.test.dk

og test.dk

Så hvordan vil man vide hvornår man skal cutte og fjerne sagerne, ifh til de forskellige url's.

Men ja, held og lykke med det:>
Avatar billede madeindk Nybegynder
12. juli 2008 - 23:48 #13
Synes umiddelbart det virkede temmelig simpelt - har lavet det i en funktion, og forklaret hvad jeg gør.

<%
Function FjernAltAndetEndDomaene(domaene)

    strTemp = domaene ' Definerer forst domænet
    If InStr(strTemp,"/") > 0 Then ' Undersøger om der er andet end et domæne navn
        strTemp = Left(strTemp,InStr(strTemp,"/")-1) ' Det er der - fjern det!
    End If

    strTemp = Replace(strTemp,"www.","") ' Fjerner www. - fjern det evt.
    arrTemp = Split(strTemp,".") ' Skaber array

    FjernAltAndetEndDomaene = arrTemp(UBound(arrTemp)-1) & "." & arrTemp(UBound(arrTemp))
   
End Function

Response.Write FjernAltAndetEndDomaene("test.john.google.com")
%>
Avatar billede pidgeot Nybegynder
13. juli 2008 - 00:12 #14
madeindk: Prøv at køre bbc.co.uk igennem den der og se hvad du får ud. Næppe det rigtige ;)

Problemet med sådan en opgave er at det ikke er helt ligetil at definere hvor domænet slutter, og subdomænet begynder. Herhjemme er vi vant til at den "del" der kommer umiddelbart før .dk er en del af selve domænet, mens alt før er en del af subdomænet - og det er også rigtigt for mange TLDs.

Britiske adresser er et godt eksempel - eks. er BBC's hjemmesidde bbc.co.uk, og det er alt sammen en del af domænet, fordi det er en "third-level" registrering (second-level er ikke mulige i .uk). Samtidigt er der .sch.uk, reserveret til skoler, hvor man skal helt ud til *fjerde* niveau før du har hele domænet med - tredje niveau angiver hvilket distrikt skolen hører under.

Lige netop den kan du måske godt acceptere, men for at det ikke skal være løgn, så er der endda enkelte second-level domæner i .uk, som blev dannet inden de gik over til deres nuværende third-level-system. Der er også andre steder hvor man har variable niveauer, eks. Japan - Nintendo har eks. nintendo.co.jp, mens Nico Nico Douga, en populær japansk videotjeneste, har nicovideo.jp.

Den eneste egentlige løsning er derfor at man indsamler de fornødne oplysninger om hvilke niveauer registreringer foregår på for hvert enkelt TLD, og benytter disse til at afgøre hvor mange elementer der skal bruges til et domæne der slutter på det man nu har fået ind - og man skal så være forberedt på at holde det ved lige, så du ikke pludselig får forkerte resultater den dag der bliver indført et nyt TLD eller Storbritannien beslutter sig for at lave et nyt second-level domæne.
Avatar billede madeindk Nybegynder
14. juli 2008 - 00:26 #15
Argh ja, ok - du har ret pidgeot - det havde jeg ikke lige tænkt på :-)
Avatar billede bobbedude Nybegynder
14. juli 2008 - 07:41 #16
Problemet er at vi ikke på forhånd kender alle TLDer men er det mon muligt at gøre det med et komponent og i så fald hvilket ?
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