Comments (2)
It really just depends on what the headers of your request look like. Once you know that, tracing through the algorithm will tell you how RemoteIp came to its conclusion. That's the easier part: the harder part is knowing which layers in your system added which headers and when. Off the top of my head, it could be that the multiple headers are being parsed in an order that doesn't preserve the "hops" correctly (which, to be fair, is kind of impossible for RemoteIp to detect, AFAICT).
Logging could help (like I said in #6). Really, I should just wire up logging statements in the RemoteIp code so users can easily trace its execution when they're debugging their setups like this.
from remote_ip.
I managed to make it work. My problem was that I was using this outside of the normal plug, inside the error_handler in the router.
(I wanted to see the IPs of all the bots that are just scanning for vulnerable routes on my servers)
(unfortunately I found out that these bots are not sending any IP headers at all, so in the end, no way to catch and block these offenders)
Thanks for taking the time to respond to this!
from remote_ip.
Related Issues (16)
- Add inet_cidr to included_applications HOT 5
- @reserved is incorrect HOT 1
- :combine should not be in :included_applications
- Dialyzer warning HOT 5
- Question about mapped-ipv4 ipv6 format HOT 3
- Export `RemoteIp.Block` as its own package? HOT 8
- X-Forwarded-For is parsed incorrectly! HOT 3
- Good article on `x-forwarded-for` parsing HOT 10
- Unsure of Implementation HOT 5
- Support for `Fly-Client-IP`? HOT 7
- Plug.Conn also has get_peer_data, which returns the original ip HOT 3
- Parse X-Forwarded-Port and X-Forwarded-Proto HOT 3
- Doesn't Work Running Server in Docker Container HOT 5
- Any way to pass runtime information to `init` HOT 1
- RFC1918 IPs shouldn't be discarded by default HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from remote_ip.