Blocos IP do Office 365

Quem usa o Office365 e precisa liberar as faixas IPv4 e IPv6 da Microsoft ( como nem eu ), fiz scripts para gerar as listagens dos endereços/blocos IP para facilitar a importação para o firewall ( uso o pfSense e por enquanto ele não tem a funcionalidade de atualizar isso automaticamente ).

O link para download da lista em formato XML está no site da Microsoft.

Script para extração dos endereços IPv4:

#!/bin/bash
WGET='/usr/bin/wget'
TEMPFILE=`/bin/mktemp`
CAT='/bin/cat'
GREP='/bin/grep'
SORT='/bin/sort'
UNIQ='/usr/bin/uniq'
MAILDST='[email protected]'
MAIL='/bin/mail'
RM='/bin/rm'

$WGET --output-document=$TEMPFILE https://go.microsoft.com/fwlink/?LinkId=533185

$CAT $TEMPFILE  | $GREP '<address>' | $GREP -v ':' | $GREP -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/[0-9]\{1,2\}' | $SORT -n | $UNIQ | $MAIL -s "Microsoft IPv4 networks" $MAILDST

$RM $TEMPFILE

Script para extração dos endereços IPv6:

#!/bin/bash
WGET='/usr/bin/wget'
TEMPFILE=`/bin/mktemp`
CAT='/bin/cat'
GREP='/bin/grep'
SORT='/bin/sort'
UNIQ='/usr/bin/uniq'
MAILDST='[email protected]'
MAIL='/bin/mail'
RM='/bin/rm'
CUT='/bin/cut'

$WGET --output-document=$TEMPFILE https://go.microsoft.com/fwlink/?LinkId=533185

$CAT $TEMPFILE  | $GREP '<address>' | $GREP ':' | $CUT -f 2 -d '>' | $CUT -f 1 -d '<' | $GREP ^2 | $SORT -n | $UNIQ | $MAIL -s "Microsoft IPv6 networks" $MAILDST

$RM $TEMPFILE

A intenção é enviar as listas por email, então atualize o campo do endereço e boa sorte. Se nao quiser receber dois e-mails, apenas junte a penúltima linha ( o $CAT ) dos dois scripts em um só.