Fortigate – Mass/bulk Import address

Mass import IP Subnets into Fortigate firewall

Recently, while working through an Office 365 Hybrid migration for a customer, we needed to bring the Exchange Online Protection IP address ranges into their firewall for policy changes.  Microsoft publishes this list here: https://technet.microsoft.com/en-us/library/dn163583%28v=exchg.150%29.aspx.  Unfortunately, I needed them in the following format:

config firewall address
edit ExchangeOnline-23.103.144.0
set subnet 23.103.144.0/22 
next

Thankfully, this was made much easier with using Word find/replace with the following syntax:

Find: (<*>).(<*>).(<*>).(<*>)/(<*>)
Replace: edit ExchangeOnline-\1.\2.\3.\4^lset subnet \1.\2.\3.\4/\5 ^lnext^l

Turns this:
23.103.132.0/22

Into this:

edit ExchangeOnline-23.103.132.0
set subnet 23.103.132.0/22
next

Simply copy and paste into SSH, upload script, etc. and you’re sorted!

Do not upload in script commands to fortigate more than 200 lines!

if there is more do it in 2 scripts