In ASP.Net, you can get the IP address to which the request was made from the Request object:
string myIpAddress = Request.UserHostAddress ;
It may be an IPv4 address or an IPv6 address. To find out, parse it into an System.Net.IPAddress:
IPAddress addr = IPAddress.Parse( myIpAddress ) ;
If you're interested in the IP address of the current host, that turns into a much more complicated (interesting?) question.
Any given host (and for "host" read "individual computer") may have multiple NICs (Network Interface Card) installed. Each NIC (assuming it's attached to an IP network) has an IP address assigned to it—and likely it has both an IPv4 and an IPv6 address assigned to it.
Further, each NIC may itself be multi-homed and have additional IP addresses, either IPv4 and/or IPv6 assigned.
Then we have the IP loopback adapter, for which each host shares the same loopback addresses. For IPv4, the loopback address is defined as the entire 127/8 subnet (that is, IP addresses 127.0.0.0–127.255.255.255 are all IPv4 loopback addresses). IPv6 only assigns a single loopback address (::1).
So, from the vantage point of the host then, you need to know the context (loopback adapter or NIC? if NIC, which one? Ipv4 or IPv6?) And even then, you're not guaranteed a single IP address. You have to ask yourself what, exactly, it is you mean by "my IP address"?