Продвинутые программы, написанные умными программистами - имеют ключ для выбора IP-адреса. Особенно программы с открытым кодом - там если кому-то требуется, он сам дописывает и с согласия автора добавляет правки в официальный исходник.
Если программа так не умеет - можно запустить вирт.машину (или полноценную, или что-то типа Jail во FreeBSD) так, чтобы программа, запущенная внутри вирт.машины, могла воспользоваться только нужным IP-адресом.
И наконец, можно организовать NAT для принудительной замены исходящего IP-адреса. Проблема в том, как отделить нужный трафик для заворачивания его в NAT-машину - это надо копать отдельно. Возможно, тут можно выделить трафик по TCP/UDP-порту. А можно включать NAT только на время работы нужной программы.