Похоже, у вас есть серьезные недоразумения о том, как работает программирование в целом (и C # в частности), а также о том, как работает протокол IP (который используется для доступа к веб-сайтам в Интернете).
Недоразумение в C # заключается в том, что вы просто создаете объект, представляющий IP-адрес, и ожидаете, что компьютер прочитает ваши мысли о том, что означает этот IP-адрес. Если что-то подобное было возможно, вам нужно было бы каким-то образом использовать IP-адрес в своем коде. Это может выглядеть примерно так:
webBrowser1.SourceIpAddress = addr1;
(Приведенный выше код не будет работать, это всего лишь гипотетический пример.)
Непонимание IP заключается в том, что вы можете подделать свой IP-адрес, и все будет продолжать работать. Это не так, как работает IP. Когда вы отправляете запрос на какую-либо веб-страницу, ваш адрес содержится в этом запросе. Но для этого есть веская причина: получатель вашего запроса знает, куда отправить свой ответ.
Это означает, что вы можете подделать свой IP-адрес, но вы никогда не получите ответ от кого-либо, все ответы будут направлены на поддельный адрес. Из-за этого делать что-то подобное бесполезно.