For my server app, I need to check if an ip address is in our blacklist.
What is the most efficient way of comparing ip addresses? Would converting the IP address to integer and comparing them efficient?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Depends what language you’re using, but an IP address is usually stored as a 32-bit unsigned integer, at least at the network layer, making comparisons quite fast. Even if it’s not, unless you’re designing a high performance packet switching application it’s not likely to be a performance bottleneck. Avoid premature optimization – design your program for testability and scalability and if you have performance problems then you can use a profiler to see where the bottlenecks are.
Edit: to clarify, IPv4 addresses are stored as 32-bit integers, plus a netmask (which is not necessary for IP address comparisons). If you’re using the newer and currently more rare IPv6, then the addresses will be 128 bits long.