1

I'm trying to figure out how to send IP in GET request. I want to call GET request like : /api/endpoint/12.12.12.12. I tried to encode it but HttpUtility.UrlEncode won't encode dots for IP alone. When I try use %2E as dot then IIS throws 404.11 - The request filtering module is configured to deny a request that contains a double escape sequence.. How to I make it the right way?

Meroz
  • 859
  • 2
  • 8
  • 28
  • Why do you want to encode the IP anyway? Why not just send it as it is? – erikvimz Oct 20 '17 at 13:24
  • what is the problem if you just send the IP as is? it does not contain any special character which need to be escaped – Gusman Oct 20 '17 at 13:24
  • BTW what happens if you send it *as is* with dots? – Matías Fidemraizer Oct 20 '17 at 13:24
  • send it as string – Rahul Oct 20 '17 at 13:24
  • 1
    @Gusman If you use periods, some servers (like IIS) can get confused and think it's a static file unless you modify the web.config – DavidG Oct 20 '17 at 13:25
  • @DavidG Then replace `.` with `-` ? – erikvimz Oct 20 '17 at 13:26
  • @ErikKralj Well that's why OP is asking how to encode it... – DavidG Oct 20 '17 at 13:26
  • Possible duplicate of [Dots in URL causes 404 with ASP.NET mvc and IIS](https://stackoverflow.com/questions/11728846/dots-in-url-causes-404-with-asp-net-mvc-and-iis) – Rahul Oct 20 '17 at 13:28
  • @Meroz There is no need to encode the IP. Send it as is or replace `.` with something else. If you try running `encodeURIComponent('12.12.12.12')` you will see the result is still `'12.12.12.12'` – erikvimz Oct 20 '17 at 13:28
  • If you know the IP address is IPv4, then you can use the `Address` property and pass the IP around as a `long`. Otherwise the `GetAddressBytes` method and send those as comma separated. There's a million ways to do it. – DavidG Oct 20 '17 at 13:28
  • I tried already replacing "." with "-" but wonder if there's another, proper solution – Meroz Oct 20 '17 at 14:18

3 Answers3

1

Try to encode it in base 64. You can find how to do it here

/api/endpoint/MTIuMTIuMTIuMTI=

Tomasz Maj
  • 1,541
  • 15
  • 15
0

You could just do a string replace.

"12.12.12.12".Replace(".","%2E");

  • IIS see it as secority issue and gives me `404.11 - The request filtering module is configured to deny a request that contains a double escape sequence.`. I wrote it in question. – Meroz Oct 20 '17 at 14:17
0

Add a slash at the end of the URL:

/api/endpoint/12.12.12.12/

this should work

owairc
  • 1,890
  • 1
  • 10
  • 9