Skip to content

Commit 96df344

Browse files
authored
Merge pull request #3 from securenative/dev
Add ip extraction tests
2 parents 7fa2993 + 71c941d commit 96df344

File tree

1 file changed

+345
-0
lines changed

1 file changed

+345
-0
lines changed

SecureNative.Tests/RequestUtilsTests.cs

Lines changed: 345 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,5 +68,350 @@ public void ExtractRequestWithProxyHeadersMultipleIps()
6868

6969
Assert.AreEqual("141.246.115.116", clientIp);
7070
}
71+
72+
[TestMethod]
73+
public void ExtractIpUsingXForwardedForHeaderIpv6()
74+
{
75+
var options = SecureNativeConfigurationBuilder.DefaultConfigBuilder().Build();
76+
77+
var headers = new WebHeaderCollection
78+
{
79+
{"x-forwarded-for", "f71f:5bf9:25ff:1883:a8c4:eeff:7b80:aa2d"}
80+
};
81+
82+
var uri = new Uri("http://www.securenative.com/login");
83+
var request = WebRequest.Create(uri);
84+
request.Headers = headers;
85+
86+
var clientIp = RequestUtils.GetClientIpFromRequest((HttpWebRequest)request, options);
87+
88+
Assert.AreEqual("f71f:5bf9:25ff:1883:a8c4:eeff:7b80:aa2d", clientIp);
89+
}
90+
91+
[TestMethod]
92+
public void ExtractIpUsingXForwardedForHeaderMultipleIp()
93+
{
94+
var options = SecureNativeConfigurationBuilder.DefaultConfigBuilder().Build();
95+
96+
var headers = new WebHeaderCollection
97+
{
98+
{"x-forwarded-for", "141.246.115.116, 203.0.113.1, 12.34.56.3"}
99+
};
100+
101+
var uri = new Uri("http://www.securenative.com/login");
102+
var request = WebRequest.Create(uri);
103+
request.Headers = headers;
104+
105+
var clientIp = RequestUtils.GetClientIpFromRequest((HttpWebRequest)request, options);
106+
107+
Assert.AreEqual("141.246.115.116", clientIp);
108+
}
109+
110+
[TestMethod]
111+
public void ExtractIpUsingXClientIpHeaderIpv6()
112+
{
113+
var options = SecureNativeConfigurationBuilder.DefaultConfigBuilder().Build();
114+
115+
var headers = new WebHeaderCollection
116+
{
117+
{"x-client-ip", "f71f:5bf9:25ff:1883:a8c4:eeff:7b80:aa2d"}
118+
};
119+
120+
var uri = new Uri("http://www.securenative.com/login");
121+
var request = WebRequest.Create(uri);
122+
request.Headers = headers;
123+
124+
var clientIp = RequestUtils.GetClientIpFromRequest((HttpWebRequest)request, options);
125+
126+
Assert.AreEqual("f71f:5bf9:25ff:1883:a8c4:eeff:7b80:aa2d", clientIp);
127+
}
128+
129+
[TestMethod]
130+
public void ExtractIpUsingXClientIpHeaderMultipleIp()
131+
{
132+
var options = SecureNativeConfigurationBuilder.DefaultConfigBuilder().Build();
133+
134+
var headers = new WebHeaderCollection
135+
{
136+
{"x-client-ip", "141.246.115.116, 203.0.113.1, 12.34.56.3"}
137+
};
138+
139+
var uri = new Uri("http://www.securenative.com/login");
140+
var request = WebRequest.Create(uri);
141+
request.Headers = headers;
142+
143+
var clientIp = RequestUtils.GetClientIpFromRequest((HttpWebRequest)request, options);
144+
145+
Assert.AreEqual("141.246.115.116", clientIp);
146+
}
147+
148+
[TestMethod]
149+
public void ExtractIpUsingXRealIpHeaderIpv6()
150+
{
151+
var options = SecureNativeConfigurationBuilder.DefaultConfigBuilder().Build();
152+
153+
var headers = new WebHeaderCollection
154+
{
155+
{"x-real-ip", "f71f:5bf9:25ff:1883:a8c4:eeff:7b80:aa2d"}
156+
};
157+
158+
var uri = new Uri("http://www.securenative.com/login");
159+
var request = WebRequest.Create(uri);
160+
request.Headers = headers;
161+
162+
var clientIp = RequestUtils.GetClientIpFromRequest((HttpWebRequest)request, options);
163+
164+
Assert.AreEqual("f71f:5bf9:25ff:1883:a8c4:eeff:7b80:aa2d", clientIp);
165+
}
166+
167+
[TestMethod]
168+
public void ExtractIpUsingXRealIpHeaderMultipleIp()
169+
{
170+
var options = SecureNativeConfigurationBuilder.DefaultConfigBuilder().Build();
171+
172+
var headers = new WebHeaderCollection
173+
{
174+
{"x-real-ip", "141.246.115.116, 203.0.113.1, 12.34.56.3"}
175+
};
176+
177+
var uri = new Uri("http://www.securenative.com/login");
178+
var request = WebRequest.Create(uri);
179+
request.Headers = headers;
180+
181+
var clientIp = RequestUtils.GetClientIpFromRequest((HttpWebRequest)request, options);
182+
183+
Assert.AreEqual("141.246.115.116", clientIp);
184+
}
185+
186+
[TestMethod]
187+
public void ExtractIpUsingXForwardedHeaderIpv6()
188+
{
189+
var options = SecureNativeConfigurationBuilder.DefaultConfigBuilder().Build();
190+
191+
var headers = new WebHeaderCollection
192+
{
193+
{"x-forwarded", "f71f:5bf9:25ff:1883:a8c4:eeff:7b80:aa2d"}
194+
};
195+
196+
var uri = new Uri("http://www.securenative.com/login");
197+
var request = WebRequest.Create(uri);
198+
request.Headers = headers;
199+
200+
var clientIp = RequestUtils.GetClientIpFromRequest((HttpWebRequest)request, options);
201+
202+
Assert.AreEqual("f71f:5bf9:25ff:1883:a8c4:eeff:7b80:aa2d", clientIp);
203+
}
204+
205+
[TestMethod]
206+
public void ExtractIpUsingXForwardedHeaderMultipleIp()
207+
{
208+
var options = SecureNativeConfigurationBuilder.DefaultConfigBuilder().Build();
209+
210+
var headers = new WebHeaderCollection
211+
{
212+
{"x-forwarded", "141.246.115.116, 203.0.113.1, 12.34.56.3"}
213+
};
214+
215+
var uri = new Uri("http://www.securenative.com/login");
216+
var request = WebRequest.Create(uri);
217+
request.Headers = headers;
218+
219+
var clientIp = RequestUtils.GetClientIpFromRequest((HttpWebRequest)request, options);
220+
221+
Assert.AreEqual("141.246.115.116", clientIp);
222+
}
223+
224+
[TestMethod]
225+
public void ExtractIpUsingXClusterClientIpHeaderIpv6()
226+
{
227+
var options = SecureNativeConfigurationBuilder.DefaultConfigBuilder().Build();
228+
229+
var headers = new WebHeaderCollection
230+
{
231+
{"x-cluster-client-ip", "f71f:5bf9:25ff:1883:a8c4:eeff:7b80:aa2d"}
232+
};
233+
234+
var uri = new Uri("http://www.securenative.com/login");
235+
var request = WebRequest.Create(uri);
236+
request.Headers = headers;
237+
238+
var clientIp = RequestUtils.GetClientIpFromRequest((HttpWebRequest)request, options);
239+
240+
Assert.AreEqual("f71f:5bf9:25ff:1883:a8c4:eeff:7b80:aa2d", clientIp);
241+
}
242+
243+
[TestMethod]
244+
public void ExtractIpUsingXClusterClientIpHeaderMultipleIp()
245+
{
246+
var options = SecureNativeConfigurationBuilder.DefaultConfigBuilder().Build();
247+
248+
var headers = new WebHeaderCollection
249+
{
250+
{"x-cluster-client-ip", "141.246.115.116, 203.0.113.1, 12.34.56.3"}
251+
};
252+
253+
var uri = new Uri("http://www.securenative.com/login");
254+
var request = WebRequest.Create(uri);
255+
request.Headers = headers;
256+
257+
var clientIp = RequestUtils.GetClientIpFromRequest((HttpWebRequest)request, options);
258+
259+
Assert.AreEqual("141.246.115.116", clientIp);
260+
}
261+
262+
[TestMethod]
263+
public void ExtractIpUsingForwardedForHeaderIpv6()
264+
{
265+
var options = SecureNativeConfigurationBuilder.DefaultConfigBuilder().Build();
266+
267+
var headers = new WebHeaderCollection
268+
{
269+
{"forwarded-for", "f71f:5bf9:25ff:1883:a8c4:eeff:7b80:aa2d"}
270+
};
271+
272+
var uri = new Uri("http://www.securenative.com/login");
273+
var request = WebRequest.Create(uri);
274+
request.Headers = headers;
275+
276+
var clientIp = RequestUtils.GetClientIpFromRequest((HttpWebRequest)request, options);
277+
278+
Assert.AreEqual("f71f:5bf9:25ff:1883:a8c4:eeff:7b80:aa2d", clientIp);
279+
}
280+
281+
[TestMethod]
282+
public void ExtractIpUsingForwardedForHeaderMultipleIp()
283+
{
284+
var options = SecureNativeConfigurationBuilder.DefaultConfigBuilder().Build();
285+
286+
var headers = new WebHeaderCollection
287+
{
288+
{"forwarded-for", "141.246.115.116, 203.0.113.1, 12.34.56.3"}
289+
};
290+
291+
var uri = new Uri("http://www.securenative.com/login");
292+
var request = WebRequest.Create(uri);
293+
request.Headers = headers;
294+
295+
var clientIp = RequestUtils.GetClientIpFromRequest((HttpWebRequest)request, options);
296+
297+
Assert.AreEqual("141.246.115.116", clientIp);
298+
}
299+
300+
[TestMethod]
301+
public void ExtractIpUsingForwardedHeaderIpv6()
302+
{
303+
var options = SecureNativeConfigurationBuilder.DefaultConfigBuilder().Build();
304+
305+
var headers = new WebHeaderCollection
306+
{
307+
{"forwarded", "f71f:5bf9:25ff:1883:a8c4:eeff:7b80:aa2d"}
308+
};
309+
310+
var uri = new Uri("http://www.securenative.com/login");
311+
var request = WebRequest.Create(uri);
312+
request.Headers = headers;
313+
314+
var clientIp = RequestUtils.GetClientIpFromRequest((HttpWebRequest)request, options);
315+
316+
Assert.AreEqual("f71f:5bf9:25ff:1883:a8c4:eeff:7b80:aa2d", clientIp);
317+
}
318+
319+
[TestMethod]
320+
public void ExtractIpUsingForwardedHeaderMultipleIp()
321+
{
322+
var options = SecureNativeConfigurationBuilder.DefaultConfigBuilder().Build();
323+
324+
var headers = new WebHeaderCollection
325+
{
326+
{"forwarded", "141.246.115.116, 203.0.113.1, 12.34.56.3"}
327+
};
328+
329+
var uri = new Uri("http://www.securenative.com/login");
330+
var request = WebRequest.Create(uri);
331+
request.Headers = headers;
332+
333+
var clientIp = RequestUtils.GetClientIpFromRequest((HttpWebRequest)request, options);
334+
335+
Assert.AreEqual("141.246.115.116", clientIp);
336+
}
337+
338+
[TestMethod]
339+
public void ExtractIpUsingViaHeaderIpv6()
340+
{
341+
var options = SecureNativeConfigurationBuilder.DefaultConfigBuilder().Build();
342+
343+
var headers = new WebHeaderCollection
344+
{
345+
{"via", "f71f:5bf9:25ff:1883:a8c4:eeff:7b80:aa2d"}
346+
};
347+
348+
var uri = new Uri("http://www.securenative.com/login");
349+
var request = WebRequest.Create(uri);
350+
request.Headers = headers;
351+
352+
var clientIp = RequestUtils.GetClientIpFromRequest((HttpWebRequest)request, options);
353+
354+
Assert.AreEqual("f71f:5bf9:25ff:1883:a8c4:eeff:7b80:aa2d", clientIp);
355+
}
356+
357+
[TestMethod]
358+
public void ExtractIpUsingViaHeaderMultipleIp()
359+
{
360+
var options = SecureNativeConfigurationBuilder.DefaultConfigBuilder().Build();
361+
362+
var headers = new WebHeaderCollection
363+
{
364+
{"via", "141.246.115.116, 203.0.113.1, 12.34.56.3"}
365+
};
366+
367+
var uri = new Uri("http://www.securenative.com/login");
368+
var request = WebRequest.Create(uri);
369+
request.Headers = headers;
370+
371+
var clientIp = RequestUtils.GetClientIpFromRequest((HttpWebRequest)request, options);
372+
373+
Assert.AreEqual("141.246.115.116", clientIp);
374+
}
375+
376+
[TestMethod]
377+
public void ExtractIpUsingPriorityWithXForwardedFor()
378+
{
379+
var options = SecureNativeConfigurationBuilder.DefaultConfigBuilder().Build();
380+
381+
var headers = new WebHeaderCollection
382+
{
383+
{"x-forwarded-for", "203.0.113.1"},
384+
{"x-real-ip", "98.51.100.101"},
385+
{"x-client-ip", "198.51.100.102"}
386+
};
387+
388+
var uri = new Uri("http://www.securenative.com/login");
389+
var request = WebRequest.Create(uri);
390+
request.Headers = headers;
391+
392+
var clientIp = RequestUtils.GetClientIpFromRequest((HttpWebRequest)request, options);
393+
394+
Assert.AreEqual("203.0.113.1", clientIp);
395+
}
396+
397+
[TestMethod]
398+
public void ExtractIpUsingPriorityWithoutXForwardedFor()
399+
{
400+
var options = SecureNativeConfigurationBuilder.DefaultConfigBuilder().Build();
401+
402+
var headers = new WebHeaderCollection
403+
{
404+
{"x-real-ip", "98.51.100.101"},
405+
{"x-client-ip", "203.0.113.1, 141.246.115.116, 12.34.56.3"}
406+
};
407+
408+
var uri = new Uri("http://www.securenative.com/login");
409+
var request = WebRequest.Create(uri);
410+
request.Headers = headers;
411+
412+
var clientIp = RequestUtils.GetClientIpFromRequest((HttpWebRequest)request, options);
413+
414+
Assert.AreEqual("203.0.113.1", clientIp);
415+
}
71416
}
72417
}

0 commit comments

Comments
 (0)