shell-script-pt
[Top][All Lists]
Advanced

[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?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]