Jefferson49 / Joomla_plugin_sexypolling_reloaded

Migration of the joomla plugin "Sexy Polling" to joomla 4.x
GNU General Public License v3.0
2 stars 3 forks source link

Bug report: All location information shows as "Unknown" in Votes #83

Closed 4creator closed 6 months ago

4creator commented 6 months ago

Hello,

The Votes page has columns for Country, City, and Region, but it seems unable to correctly identify my IP address. All the fields show "Unknown." As a test, I looked up my IP address on whatismyipaddress.com, and it was able to correctly identify my country (although it showed the wrong nearby city and region for City and Region).

Regards

Jefferson49 commented 6 months ago

Sexy Polling uses the following service to get location information about the IP address: https://www.ipinfodb.com/

Maybe, this service is not providing a reasonable result for your IP address. Can you check with the provided link?

Maybe, some better services are available today and the service, which has been used for a long time, is outdated. I do not have any information about that. Do you have a proposal for a good service regarding IP geo location?

4creator commented 6 months ago

Can you check with the provided link?

Yes, same result as whatismyipaddress.com. However, on ipinfodb it was displayed as IPv6.

Do you have a proposal for a good service regarding IP geo location?

It seems that one of the extensions I am using utilizes Geolocation, but unfortunately, I cannot determine whether this information is useful for our current case or not.

Jefferson49 commented 6 months ago

However, on ipinfodb it was displayed as IPv6

Maybe, IPv6 could be a reason that the geolocation is not resolved. However, testing with https://www.ipinfodb.com also resolved my IPv6 address.

On my Joomla internet server, I can only see IPv4 addresses. However other Sexypolling users seem to see IPv6 addresses. See also the discussion in issue #77.

Can you check in the backend if votes from your IP in Sexypolling are shown with IPv4 or IPv6 address?

Can you check your IP address handling with https://www.test-ipv6.com? Do see IPv4 and IPv6 in parallel? Or only IPv6?

4creator commented 6 months ago

When I checked the results of my test votes in the Votes section, the IP column displayed "ffff104.28.99.xxx" (with four f's before the IPv4 address / The xxx part is actually a number.).

Also, on test-ipv6.com, both IPv4 and IPv6 addresses are shown, with the message "You appear to be IPv6 enabled" and "Your DNS server appears to provide IPv6 internet access."

I'm using the latest macOS with Safari, so this IP address issue might be related to Apple's iCloud Private Relay (just my guess).

4creator commented 6 months ago

Regarding the IP address column displaying as Unknown, I reported it because I was concerned, but if double voting is prevented by managing votes based on user IDs, then the Unknown display itself is not a major issue for me.

In fact, through my tests I have confirmed that it is able to prevent double voting.

Jefferson49 commented 6 months ago

When I checked the results of my test votes in the Votes section, the IP column displayed "ffff104.28.99.xxx" (with four f's before the IPv4 address / The xxx part is actually a number.)

I think the "ffff" is the root cause of not resolving the geolocation. It seems that your IP address is already using the IPv6 namespace, which uses a prefix of "::ffff:" to IPv4 addresses. I found a simular issue on stackoverflow.

I also identifyed a bug with string handling of IP addresses in Sexypolling. The combination of the bug and the ::ffff: namespace results in the wrong behavior.

Based on this analysis, I could fix the issue.