[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
regexp para extrair domínio de uma URL
From: |
Cristiano |
Subject: |
regexp para extrair domínio de uma URL |
Date: |
Tue, 03 Nov 2009 13:35:26 -0000 |
User-agent: |
eGroups-EW/0.82 |
Senhores, antes de mais nada, postei uma mensagem que trata do mesmo problema
deste post na lista linux-board
(http://br.groups.yahoo.com/group/linux-board/message/29140).
Por favor, não considerem cross-posting pois, embora o problema seja o mesmo, a
solução é diferente.
Lá eu informo que estou tentando implementar acl externas no squid, à partir de
um lista no MySQL, usando um shell script para casar (ou não) o tráfego.
O problema é que o squid só tem a opção de repassar para scrit o endereço
completo do host e não apenas o nome do domínio. E, nos dados das listas, está
armazenado apenas o nome do domínio. Para quem não eu o post lá, um exemplo.
Nas blacklists eu tenho o domínio 'playboy.com', mas na hora de filtrar o
tráfego, recebo do squid 'www.playboy.com'.
Assim, dificilmente o tráfego casa com a blakclist. No post da linux boad eu
questiono se alguém sabe como fazer o squid me passar apenas o do domínio ao
invés do host inteiro, pois não quero aumentar o processamento fazendo o script
extrair o domínio da string com o host.
Porém, na falta de solução deste modo, vou usar uma regexp para extraí-lo.
É aí que vocês podem me ajudar. Inicialmente, construí a seguinte ER:
[[:alpha:]]*.[[:alpha:]]{0,3}\.?[[:alpha:]]{0,2}$
Muito boa. Casa tanto domínios sem a raiz do país (como globo.com), como com
raiz do pais (como uol.com.br).
O problema são os domínios de universidades, que somente possuem um TLD, a raiz
do país.
Por exemplo, www.usp.br, deveria retornar apenas 'usp.br' mas a regex casa com
'www.usp.br'. Em outro extremo, www.ufmt.br ou www.cesumar.br, deveriam
retornar apenas 'ufmt.br' ou 'cesumar.br', mas não retornam nada, pq o segundo
bloco (de tras para frente) deve ter 3 caracteres alfa para contemplar o
domínio raiz.
Alguém pode me ajudar a melhorar esta ER?
- regexp para extrair domínio de uma URL,
Cristiano <=