Tag-Archive for » regex «

Domenica, 26 Aprile, 2009 | Autore:

Fidati di me. Siamo ancora a che fare con le espressioni regolari – solo in una rotonda (e vagamente pratico) modo. Questa è una lista abbastanza completa di come fare per svuotare le cache DNS durante l'utilizzo di espressioni regolari per mostrare dove metodi simili discostano.

Perché vogliamo chiarire esattamente cache DNS?

Ci sono un certo numero di motivi per cancellare DNS cache, anche se credo che questi sono i più comuni:

  • Un intranet servizio ha un private (interno) Indirizzo IP quando sulla rete aziendale ma ha un indirizzo IP pubblico per l'accesso esterno. Quando si tenta di accedere a tale servizio da fuori dopo l'accesso dall'interno, c'è una possibilità che avreste cache del privato (inaccessibile) IP. Una buona soluzione a lungo termine è quello di rendere il servizio inaccessibile se non attraverso VPN. Una soluzione più semplice è quella di lasciare il lavoro al lavoro. 😛
  • Un sito di servizio internet o web cambia le impostazioni DNS e il vostro desktop / laptop sta esaminando il “vecchio” Impostazione. In questo caso, la nuova impostazione non ha ancora propagato. Gli amministratori Hosting imbattono in questo caso molto spesso.
  • Vita privata: Se qualcuno in grado di monitorare la vostra storia DNS allora non sarebbe troppo difficile da capire quali siti web che stavate visualizzando. Anche se le singole pagine che hai visto, non possono essere monitorati in questo modo, i nomi host, come “dogma.swiftspirit.co.za” o “google.com” sarà nella cache DNS, probabilmente nell'ordine primo accesso ogni sito. Ci sono modi migliori per fare questo però. Un esempio è quello di utilizzare una rete Tor per tutte le richieste DNS.

Flushing di Windows’ Cache DNS, dal prompt dei comandi:

L'evidenza suggerisce che prima Finestre 2000, Finestre OS non memorizzano nella cache i risultati DNS. Il ipconfig comando, eseguire dal prompt dei comandi, è stato dato un certo controllo sulla cache DNS ed è rimasta più o meno la stessa dal.

Per ottenere il prompt se si utilizza View la non-Admin: Inizio -> Programmi -> Accessori -> Right-click “Prompt dei comandi” -> Esegui come amministratore

Altrimenti: Inizio -> RONU -> [cmd ] -> [ Bene ]

ipconfig / flushdns

Flush the DNS Resolver Cache in Windows

È anche possibile eliminare la cache in Windows ripresa il “Client DNS” o “Dnscache” servizio.

Cache DNS Flushing Mac OS X, dal prompt della shell:

Da Mac OS X, Mela Macs sono stati in esecuzione di un Unix-based, POSIX-compiacente, sistema operativo basato sul NeXTSTEP, stessa origine contenente il codice di FreeBSD e NetBSD. Usi Mac OS X lookupd o dscacheutil per gestire la cache DNS, a seconda della versione.

Per ottenere il prompt: Applicazioni -> Utilities -> Terminale

(lookupd|dscacheutil) -flushcache

Quello che abbiamo qui? Come per parte 1, il barra verticale indica che o “lookupd” OR “dscacheutil” sono accettabili. Il Parentesi indicare che la barra verticale vale solo per il “lookupd|dscacheutil” parte dell'espressione. Così, il ” -flushcache” non è opzionale, ed è inserito nel comando in modo per farlo funzionare. Si noti che questi comandi producono alcun output se non c'è un errore.

Utilizzare dscacheutil se state usando Mac OS X 10.5 (Leopardo) o versioni successive.

Mac OS X:

lookupd-flushcache

Mac OS X Leopard:

dscacheutil-flushcache

Use dscacheutil to flush the cache in Mac OS X Leopard

C'è anche uno strumento GUI, DNS Flusher, che utilizza automaticamente il comando corretto disponibile.

Flushing Linux / Unix’ Cache DNS, dal prompt della shell:

N.B. Se non ne hai già uno legare (con il caching di ricerca attivato), nscd, o dnsmasq installato e in esecuzione sul vostro * basati nix-desktop / server, si sono probabilmente Non caching DNS a tutti e non c'è nulla da lavare. In questo caso si dovrà essere utilizzando il server DNS per ogni richiesta web, probabilmente rallentando la vostra esperienza web. * Se è così, Raccomando almeno installando nscd in quanto è il più facile da installare. **

La cache di Flushing nscd

Come con il comando di Mac OS, questo produce alcuna uscita se non c'è un errore:

(|sud )(|/usr / sbin /)host nscd -i
  • Uso sud se non sei già radice altrimenti la prima selezione è vuoto.
  • Precisare / usr / sbin / se nscd non è già all'interno della “sentiero”. Se la vostra distribuzione ha nscd in un posto strano, individuarlo prima:
individuare bin -r / $ nscd

Si noti che quanto sopra “bin / $ nscd” è di per sé una espressione regolare. 🙂

Utilizzando nscd, invalidare la “padroni di casa” nascondiglio, loggato come utente:
sudo -i padroni nscd
Utilizzando nscd, invalidare la “padroni di casa” nascondiglio, accesso come root:
host nscd -i
Utilizzando nscd, invalidare la “padroni di casa” nascondiglio, accesso come root, specificando il percorso completo:
/usr / sbin / nscd -i padroni di casa

Flushing cache del bind

Per svuotare la cache di bind, emettiamo un comando via rndc. Utilizzare sudo se non siete già radice:

(|sud )rndc flush

Riavviare i servizi di cache funziona anche!

Ecco come riavviare uno dei demoni di caching:

(|sud )(servizio |/etc /(rc . d|rc  .d / init . d|init . d)/)(legare|dnsmasq|nscd) restart

Che sta iniziando a ottenere difficile da leggere. *** Per fortuna ho spiegato in dettaglio:

  • Come per il precedente comando, usare sudo se non sei già radice.
  • La seconda selezione ha la prima opzione “servizio “. Questo vale soprattutto per i sistemi Red Hat / CentOS e Fedora.
  • Il “/etc /(rc . d|rc .d / init . d|init . d)/” deve essere ampliato ulteriormente. Questo è per la maggior parte degli altri sistemi. Generalmente, la rc.d è per se state utilizzando un sistema di init stile BSD (per esempio: Arch Linux, FreeBSD, o OpenBSD). Il modo migliore per sapere con certezza quale comando da utilizzare è quello di 'individuare’ il nscd corretto o dnsmasq sentiero. La maggior parte delle versioni di Unix, anche Solaris, usare nscd:
individuare -r  .d / $ nscd ; individuare -r  .d / dnsmasq $ ; individuare -r  .d / rndc $
  • L'ultima scelta è tra “legare”, “nscd”, e “dnsmasq”. Questo dipende interamente su cui è installato e in uso.
  • L'ultima del pattern, ” restart”, è l'istruzione data script di controllo del demone.

Arco, utilizzando dnsmasq, riavviare il daemon di cache, accesso come root:

/etc / rc.d / restart dnsmasq

Arco, utilizzando nscd, riavviare il daemon di cache, registrati come utente:

restart sudo /etc/rc.d/nscd

CentOS / Red Hat, utilizzando nscd, riavviare il daemon, come root:

servizio restart nscd

nscdrestart

Cache DNS interna di incasso Mozilla Firefox:

Mozilla Firefox mantiene la propria cache DNS per le prestazioni. Firefox 2 avrebbe in cache solo 20 voci per fino a 60 secondi. L'impostazione di default di Firefox 3 sembra essere 512 voci per fino a 60 minuti che sembra molto più ragionevole per la navigazione di tutti i giorni. Se il vostro desktop ha una cache integrata (che la maggior parte ora fare) poi la cache qui è realmente ridondante. Io non sono a conoscenza di altri browser che implementano la cache DNS.

Ho trovato alcune soluzioni per quando si ha bisogno di cancellare la cache. Sembra che ci sono molti modi per fare questo però questi sono i più facili, che ho messo in ordine di preferenza.:

  1. Installare l' Firefox DNS Flusher Addon – fornisce un pulsante per svuotare la cache.
  2. Installare l' Cache DNS Addon – fornisce una ginocchiera che disabilita o abilita la cache DNS.
  3. Cancella cache (cancella la cache del browser, così come DNS Cache): Selezionare Ttrumenti -> Chiaro Private Data; Deselezionare tutte le caselle di controllo ad eccezione di Cunche; Fare clic [ Elimina i dati personali adesso ].
  4. Fare manualmente quello che fa DNS Cache: impostare la seguente 2 circa:config Opzioni “network.dnsCacheExpiration” e “network.dnsCacheEntries” a 0 e poi di nuovo il default.

Ho avuto un record di cattivo cache e ho cancellato la cache del browser. Ma la sua ancora mi forniscono le informazioni di sbagliato. Ciò che dà?

A causa di come funziona la propagazione DNS, avete preferibilmente necessario irrigare il DNS tutto Host DNS tra te e la “authoritive” ospite, iniziando con l'host più vicina all'host authoritive (più lontano dal tuo browser).

Come esempio, se avete un router che sta caching DNS, reimpostare la cache del router prima di riavviare la cache DNS del vostro sistema operativo, e solo allora si dovrebbe cancellare la cache di Firefox. La ragione è che anche se si cancella solo il sistema operativo e la cache di Firefox, il desktop è ancora in corso per chiedere al router per la sua male registrare comunque.

Cosa succede se il mio server DNS è un server in rete fuori dal mio controllo?

Si potrebbe provare temporanea tramite un nameserver diversa, forse anche un pubblico aperto server. OpenDNS mostra alcune buone informazioni su come eseguire questa operazione. Se vuoi, si dovrebbe anche essere in grado di ottenere informazioni utili dal proprio ISP per quanto riguarda i loro server DNS Resolving. Un esempio locale (Sudafrica) è SAIX che liste i loro server DNS Resolving.

* Probabilmente il motivo per cui Firefox ha una cache DNS integrato ****
** “((pacman|yogurt) -S|emergere|(yum|attitudine|apt-get) installare) nscd” e quindi assicurarsi che il servizio viene aggiunto gli script di avvio. Fare riferimento alla documentazione di installazione della distribuzione.
*** Sto cercando una evidenziazione della sintassi plugin che può funzionare con regex
**** Ho letto le dichiarazioni che il riavvio della rete(ing|) servizio cancella anche la cache DNS ma non ho visto alcuna prova che questo è vero. Se qualcuno ha un esempio in cui questo è vero, prego fornire i dettagli.
Condividere
Lunedi, 6 aprile, 2009 | Autore:

Un collega sta cercando di imparare regex così ho deciso di metterlo qui. Questo è il primo di una serie di articoli regex correlati. Nelle parti a seguire, stiamo andando a utilizzare il nostro Espressioni regolari per imparare le questioni attinenti Internet mentre simltaneously espansione sulla conoscenza regex.

Regex Quick Start

  1. La barra verticale |, a volte noto come un tubo, è un “OR” operatore nelle espressioni regolari. Essa indica che la sequenza a sinistra oa destra è accettabile. Sulla tastiera, questa chiave è in genere il “capitale”, o “Versione spostato”, del tasto backslash.
  2. Le parentesi sono parentesi tonde () che selezionare una sezione di una espressione regolare. Possono essere utilizzati in modo simile a quando la matematica ordine delle operazioni viene regolata. Il “selezione” può essere fatto riferimento altrove se vedremo più avanti.
  3. La puntino . è un carattere speciale che corrisponde qualsiasi carattere diverso “newline” caratteri.
  4. Un backslash \ è talvolta chiamato fuga personaggio. Ci sono molti personaggi, come le parentesi e la barra verticale sopra, che hanno significati speciali. Il backslash viene utilizzato per portare via (fuga) questi significati speciali. Per esempio, per specificare un punto reale, è necessario sfuggire alla speciale carattere punto: \.
  5. Una stella * è un operatore che indica che il carattere precedente può essere ripetuto zero o più volte. Questo è spesso combinato con il punto di produrre un “jolly” modello, che corrisponde a una stringa di qualsiasi lunghezza: .*

Utilizzando la barra verticale e il carattere di escape

Qui abbiamo una serie di indirizzi web di esempio:

http://dogma.swiftspirit.co.za/
http://swiftspirit.co.za/
http://google.com/

Se voglio un modello che li soddisfa, Potrei usare la barra verticale (regola 1 sopra) separarli. Vorrei poi anche bisogno di usare il carattere di escape (regola 4 sopra) per i punti fermi:

http://dogma  .swiftspirit  .co  .Con /|http://swiftspirit  .CO  .Con|http://google  .com /

Per sopra corrisponderà ogni URI nel mio esempio ma non è specificamente efficace o elegante.

Utilizzando parentesi

Lo stesso può essere raggiunto con la seguente, minore, regex, utilizzando la parentesi dal dominio 2 sopra:

http://((|dogma .)swiftspirit  .CO  .Con|google  .com)/

Si noti che ho semplicemente messo oggetti comuni, per esempio “http://” e “/”, fuori le selezioni.

Che cosa succede se si desidera abbinare testo che potrebbe essere qualsiasi cosa?

Forse avete più che si vuole ancora corrispondere? Per esempio, se metto http://swiftspirit.co.za/downloads/ e voglio ancora il modello per abbinare quello o qualsiasi altro url sotto il mio sito web. O forse il suo bene per http://niente.google.com/niente da abbinare anche. Possiamo usare gli appositi punti e stelle personaggi regole 3 e 5 dall'alto:

http://((|dogma .)swiftspirit  .CO  .Con|(|.*\.)google  .com)/.*

Semplicemente aggiungendo che ogni personaggio può apparire zero o più volte lascia molto più partita senza aggiungere troppo la complessità del regex:

(|.*\.)

Quanto sopra è da davanti del modello google.com. La barra verticale indica due opzioni qui: sia vuoto (così si finisce con solo google.com), o .*\. (così abbiamo niente seguito da un punto letterale e che viene poi seguita da google.com).

Practise rende perfetti

Possiamo già vedere dal l'ultimo esempio che un'espressione regolare può diventare molto rapidamente complessa. Proprio come tutte le lingue, essere facilmente in grado di leggere una espressione regolare richiede pratica. Se avete un bisogno rilevante di lavorare con le espressioni regolari, siete dentro per un ossequio.

Parte 2 dovrebbe essere dovuto in pochi giorni. Farò alcuni molto indiretto “lavoro”, dimostrando come per irrigare cache DNS in una varietà di sistemi.

Condividere