ASP.Net is the framework developed by Microsoft for implementing dynamic web pages. ASP.Net pages typically have a .aspx extension. Visual C# is merely one of the programming languages that may be used for programming the functionality on the backend of the .aspx page. Other languages include Visual Basic, and Visual J#.
Asp.net with C# provides ways of determining IP addresses of visitors to your website. Simply check the server variables HTTP_X_FORWARDED_FOR, as well as REMOTE_ADDR. The server variable HTTP_X_FORWARDED_FOR will return the real IP address of the person. If the person is behind a proxy or router, the server variable REMOTE_ADDR will return the IP address of the proxy or router.
The 301 status code is a status code used to indicate that a webpage has been moved from one url to another. The 301 status code is used to indicate that a page has "moved permanently". 301 Moved Permanently is the correct way of redirecting a user if a website's domain name has changed or if a webpage's url has renamed or moved.