-
Notifications
You must be signed in to change notification settings - Fork 118
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Domain Status False Positives #6
Comments
How dare it say such lies. I'm looking into this problem now. |
@robindimyan Ooooh, so. This is actually quite interesting! Facebook seems to have registered No DiceWhich means when, as catphish is currently implemented, there's no secondary check for validity. require 'resolv'
Resolv.getaddress "www-facebook.com" Will error out like so:
Whois Tell Us Who Is PlzBut, if we ran a whois on that address: > whois www-facebook.com We will see the whois information for facebook. Ping'emIf we ping the address, just cuz: > ping www-facebook.com We will see:
|
Well, I guess it's not that interesting. But, it means something. How To FixHonestly, after you pointing out this issue, I am seeing that catphish is using the OR this could be implemented as a second option. But, there's also the case of why it's still saying it's available for some reason. CORRECTION: Because it doesn't work properly, obviously. Which I'll look into now. |
I wonder if the resolv option should just always be a whois option. Or to separate the two functionalities into their own command-line arguments. There's lots of options with that. |
Yay RedundanciesSince this is just one of those fun teaching moments: let's do that. Catphish, as it is currently implemented, has the following gems: require 'resolv'
require 'getoptlong'
require 'simpleidn'
require 'whois'
require 'whois-parser' Let's narrow in on just This is how that happens in, let's say, a pry REPL: [1] pry(main)> require 'whois'
=> true
[2] pry(main)> require 'whois-parser'
=> true Now, what if we reversed that order? [1] pry(main)> require 'whois-parser'
=> true
[2] pry(main)> require 'whois'
=> false Redundant Gems are FunYou actually could just require the So, anyway. Still working on fixing some stuff. |
Whois Parser Makes Me Feels Betterrequire 'whois-parser'
# This is almost kinda, like, ugly tho, but works:
Whois.whois("www-facebook.com").parser.available?
# => false I'm pretty sure just relying on the whois information is going to be more reliable. So, perhaps if there was a resolv command-line option. It could be for speed, maybe. Depends on the speed of getting/parsing whois information. There's some design thoughts to be had for sure. And benchmarks might help. |
The problem with 'whois' its limited to <= 200 - 300 queries before it gets timeout, which is not going to work for a large number of domain queries. On the other hand, 'resolve' gives a faster response and can query a large number domains without any issues. However, like in this case 'www-facebook.com'', it gives a false positive because the domain can't be resolved, which is not the case for 'whois'. We are aware of this issue and it will be addressed soon in the near future. Any suggestions would be appreciated. |
Tool informs me that some domains are available even when they're not. See the screenshots.


The text was updated successfully, but these errors were encountered: