В ASP.Net вы можете получить IP-адрес, на который был сделан запрос, из объекта Request:
string myIpAddress = Request.UserHostAddress ;
Это может быть адрес IPv4 или IPv6. Чтобы выяснить это, проанализируйте его в System.Net.IPAddress:
IPAddress addr = IPAddress.Parse( myIpAddress ) ;
Если вас интересует IP-адрес текущего хоста, это превращается в гораздо более сложный (интересный?) Вопрос.
На любом данном хосте (и для «хоста» читайте «отдельный компьютер») может быть установлено несколько сетевых карт (Network Interface Card). Каждому сетевому адаптеру (при условии, что он подключен к IP-сети) назначен IP-адрес, и, вероятно, ему назначены как IPv4, так и IPv6-адрес.
Кроме того, каждый сетевой адаптер сам по себе может быть многодомным и иметь дополнительные IP-адреса, назначенные IPv4 и / или IPv6.
Тогда у нас есть IP-петлевой адаптер, для которого каждый хост имеет одинаковые петлевые адреса. Для IPv4 адрес обратной петли определяется как вся подсеть 127/8 (то есть IP-адреса 127.0.0.0 - 127.255.255.255 - все адреса обратной петли IPv4). IPv6 назначает только один адрес обратной связи (:: 1).
Итак, с точки зрения хоста, вам нужно знать контекст (адаптер обратной связи или сетевой адаптер, если сетевой адаптер, какой - Ipv4 или IPv6?). И даже в этом случае вам не гарантирован один IP-адрес. , Вы должны спросить себя, что именно вы подразумеваете под "моим IP-адресом"?