Nothing too fancy... (and not optimized for bash gurus :p) #!/bin/bash
TIMESTAMP=$(date '+%Y%m%d%H%M%S')
URL="https://endpoints.office.com/endpoints/worldwide?noipv6&ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7"
OUTPUTFILE="${TIMESTAMP}_MappingAllNetwork"
echo "Retrieving Microsoft IPs:"
curl "${URL}" > "${OUTPUTFILE}_raw"
jq . "${OUTPUTFILE}_raw" > "${OUTPUTFILE}_json" && rm "${OUTPUTFILE}_raw"
egrep -o '[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+/[0-9]+' "${OUTPUTFILE}_json" | sort -un -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 | grep -o '^[^#]*' | sed 's/$/,EXTERNAL,WIRED,CLOUD PROVIDERS/' > "${OUTPUTFILE}_sorted" && rm "${OUTPUTFILE}_json" We produce a csv as follows: IpRange,Zone,Type,Site So this is why you see "EXTERNAL, WIRED, CLOUD PROVIDERS" 🙂
... View more