Obviamente não é tão fácil quanto parece em primeiro lugar. No caso da AWS, existem fatos personalizados que informam que você está no aws, por exemplo:
# facter -p | grep ^ec2 |wc -l
33
O IP público é salvo no fato 'ec2_public_ipv4'. Então, é fácil detectar a AWS.
Mas no DigitalOcean - não há nada que indique na própria VM que está sendo executado no DigitalOcean. Apenas um fato interessante que vejo é:
# facter -p | grep kvm
virtual => kvm
A Amazon usa xenhvm. Se o SoftLayer usar algo diferente de xen / kvm, você poderá usar esse fato como ponto de partida. Claro que este método não é muito robusto, porque cada um deles pode mudar a virt tech em algum momento no tempo, o que pode tornar inoperáveis todas as suas VMs naquele provedor.
O que eu sugiro é que você escreva seu próprio fato personalizado, que levará em conta todo o conhecimento que você tem sobre os diferentes provedores de nuvem que você usa e, em seguida, decidirá quais IPs expor a seus scripts. Não há outra maneira, infelizmente.