Compare commits

...

18 Commits

Author SHA1 Message Date
Daniel Seifert 6e7c2d868e
adjust version informations 2023-06-20 11:16:48 +02:00
Daniel Seifert d47993ef64
use assertions for condition checks 2023-06-20 11:14:11 +02:00
Daniel Seifert 37ec1f8b3c
fix wrong method call 2023-06-20 10:13:42 +02:00
Daniel Seifert ad8ba172e1
adjust version informations 2023-06-15 10:22:33 +02:00
Daniel Seifert c5b5f4c81e
make installable in OXID 6.5.2 2023-06-15 10:20:05 +02:00
Daniel Seifert 90cab8bd75
make installable in OXID 6.5.1 (CE 6.13) 2022-12-13 14:41:32 +01:00
Daniel Seifert ece975eb72
add some info logs 2022-10-13 08:41:09 +02:00
Daniel Seifert 8d9a348757
adjust version informations 2022-09-29 12:14:54 +02:00
Daniel Seifert f30d2c13a6
make comptaible to OXID 6.12 dependencies 2022-09-29 12:09:34 +02:00
Daniel Seifert ad55da9184
make installable in OXID 6.5 2022-09-29 11:12:12 +02:00
Daniel Seifert 5b73462214
remove personal database name from sql chunks 2022-07-15 11:01:56 +02:00
Daniel Seifert 8caef22194
adjust version informations 2022-05-04 11:20:58 +02:00
Daniel Seifert 94dd9717c0
update geo ip data to current 2022-05-04 11:15:43 +02:00
Daniel Seifert 57c1b53e61
fix import queries 2022-05-04 11:15:03 +02:00
Daniel Seifert 5364805863
update license informations 2022-05-04 11:14:14 +02:00
Daniel Seifert 9da6822c4f
make installable in OXID 6.3.1 2022-03-17 11:06:42 +01:00
Daniel Seifert 35d05196a9
remove license key requirement, adjust version information 2021-08-05 10:13:29 +02:00
Daniel Seifert 26015b4344
keep redirect prevention in session 2021-07-23 14:08:17 +02:00
48 changed files with 702370 additions and 366003 deletions

View File

@ -3,7 +3,12 @@
This product includes GeoLite2 data created by MaxMind, available from
<a href="http://www.maxmind.com">http://www.maxmind.com</a>.
GeoIp-Data based on GeoLite2 Country by Maxmind (January 2018).
These database will be published under GPL3 by Maxmind. Please see www.maxmind.com for updates.
GeoIp-Data based on GeoLite2 Country by Maxmind (May 2022).
Database and Contents Copyright (c) 2022 MaxMind, Inc.
Use of this MaxMind product is governed by MaxMind's GeoLite2 End User License Agreement, which can be viewed at https://www.maxmind.com/en/geolite2/eula.
This database incorporates GeoNames [https://www.geonames.org] geographical data, which is made available under the Creative Commons Attribution 4.0 License. To view a copy of this license, visit https://creativecommons.org/licenses/by/4.0/.
Maxmind offers more accuracy data for cash. More informations about this you'll find on www.maxmind.com.

View File

@ -1,5 +1,41 @@
# Changelog
- 4.1.2.0
- verwendet Assertions fĂĽr BedingungsprĂĽfung
- fehlerhaften Methodenaufruf korrigiert
- 4.1.1.0
- Support fĂĽr OXID 6.5.2
- Logging erweitert
- 4.1.0.0
- Support fĂĽr OXID 6.4 und 6.5
- Support fĂĽr OXID < 6.3 entfernt
---
- 4.0.4.2
- updated geo ip data (May 2022)
---
- 4.0.4.1
- Support fĂĽr OXID 6.3.1
---
- 4.0.4.0
- Modul erfordert keine LizenzschlĂĽssel mehr - Weiterentwicklung erfolgt ausschlieĂźlich durch Individualbeauftragung
---
- 4.0.3.0
- behält die Umleitungsverhinderung während der aktuellen Session auch ohne weitere Parameter bei
---
- 4.0.2.0
- Parameter hinzugefĂĽgt, um ungewollte URL-Weiterleitungen zu verhindern

View File

@ -28,6 +28,33 @@ FĂĽhren Sie den folgenden Befehl in Ihrer Shopinstallation aus:
composer remove d3/geoip --no-dev
```
## Changelog
Siehe [CHANGELOG](CHANGELOG.md) fĂĽr weitere Informationen.
## Beitragen
Wenn Sie eine Verbesserungsvorschlag haben, legen Sie einen Fork des Repositories an und erstellen Sie einen Pull Request. Alternativ können Sie einfach ein Issue erstellen. Fügen Sie das Projekt zu Ihren Favoriten hinzu. Vielen Dank.
- Erstellen Sie einen Fork des Projekts
- Erstellen Sie einen Feature Branch (git checkout -b feature/AmazingFeature)
- FĂĽgen Sie Ihre Ă„nderungen hinzu (git commit -m 'Add some AmazingFeature')
- Ăśbertragen Sie den Branch (git push origin feature/AmazingFeature)
- Ă–ffnen Sie einen Pull Request
## Lizenz
(Stand: 06.05.2021)
Vertrieben unter der GPLv3 Lizenz.
```
Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
Diese Software wird unter der GNU GENERAL PUBLIC LICENSE Version 3 vertrieben.
```
Die vollständigen Copyright- und Lizenzinformationen entnehmen Sie bitte der [LICENSE](LICENSE.md)-Datei, die mit diesem Quellcode verteilt wurde.
## Support
- D3 Data Development (Inh. Thomas Dartsch)

View File

@ -36,8 +36,9 @@
}
},
"require": {
"oxid-esales/oxideshop-ce": "6.3 - 6.8",
"d3/modcfg": "^5.3.6.000 || ^6"
"oxid-esales/oxideshop-ce": "6.8 - 6.14",
"d3/modcfg": "^6",
"beberlei/assert": "^3.3"
},
"autoload": {
"psr-4": {

File diff suppressed because it is too large Load Diff

View File

@ -1,28 +0,0 @@
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('103.230.141.0/24', '103.230.141.0', '103.230.141.255', 0x30303030303031373433313632363234, 0x30303030303031373433313632383739, 'AQ', 'Antarctica', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('178.17.162.168/29', '178.17.162.168', '178.17.162.175', 0x30303030303032393837353030323030, 0x30303030303032393837353030323037, 'AQ', 'Antarctica', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('185.121.177.0/24', '185.121.177.0', '185.121.177.255', 0x30303030303033313131373630313238, 0x30303030303033313131373630333833, 'AQ', 'Antarctica', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('202.144.196.0/24', '202.144.196.0', '202.144.196.255', 0x30303030303033333938343834393932, 0x30303030303033333938343835323437, 'AQ', 'Antarctica', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('202.144.199.0/24', '202.144.199.0', '202.144.199.255', 0x30303030303033333938343835373630, 0x30303030303033333938343836303135, 'AQ', 'Antarctica', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('204.120.204.0/24', '204.120.204.0', '204.120.204.255', 0x30303030303033343330343638363038, 0x30303030303033343330343638383633, 'AQ', 'Antarctica', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('31.220.29.192/27', '31.220.29.192', '31.220.29.223', 0x30303030303030353334353139323332, 0x30303030303030353334353139323633, 'AQ', 'Antarctica', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('2a05:dfc7:5353::/48', '2a05:dfc7:5353::', '2a05:dfc7:5353:ffff:ffff:ffff:ffff:ffff', 0x2A05DFC7535300000000000000000000, 0x2A05DFC75353FFFFFFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('2a05:dfc7:5::/48', '2a05:dfc7:5::', '2a05:dfc7:5:ffff:ffff:ffff:ffff:ffff', 0x2A05DFC7000500000000000000000000, 0x2A05DFC70005FFFFFFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('2a05:dfc7:beef::/48', '2a05:dfc7:beef::', '2a05:dfc7:beef:ffff:ffff:ffff:ffff:ffff', 0x2A05DFC7BEEF00000000000000000000, 0x2A05DFC7BEEFFFFFFFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('103.55.47.27/32', '103.55.47.27', '103.55.47.27', 0x30303030303031373331363639373837, 0x30303030303031373331363639373837, 'GS', 'South Georgia and the South Sandwich Islands', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('104.224.44.0/24', '104.224.44.0', '104.224.44.255', 0x30303030303031373539353231373932, 0x30303030303031373539353232303437, 'GS', 'South Georgia and the South Sandwich Islands', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('154.65.48.0/24', '154.65.48.0', '154.65.48.255', 0x30303030303032353837393633333932, 0x30303030303032353837393633363437, 'GS', 'South Georgia and the South Sandwich Islands', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('172.111.161.47/32', '172.111.161.47', '172.111.161.47', 0x30303030303032383932393936393131, 0x30303030303032383932393936393131, 'GS', 'South Georgia and the South Sandwich Islands', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('46.36.201.246/31', '46.36.201.246', '46.36.201.247', 0x30303030303030373734313632393334, 0x30303030303030373734313632393335, 'GS', 'South Georgia and the South Sandwich Islands', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('46.36.201.248/31', '46.36.201.248', '46.36.201.249', 0x30303030303030373734313632393336, 0x30303030303030373734313632393337, 'GS', 'South Georgia and the South Sandwich Islands', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('46.36.201.250/32', '46.36.201.250', '46.36.201.250', 0x30303030303030373734313632393338, 0x30303030303030373734313632393338, 'GS', 'South Georgia and the South Sandwich Islands', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('45.59.160.0/24', '45.59.160.0', '45.59.160.255', 0x30303030303030373538383832333034, 0x30303030303030373538383832353539, 'HM', 'Heard Island and McDonald Islands', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('104.224.58.0/24', '104.224.58.0', '104.224.58.255', 0x30303030303031373539353235333736, 0x30303030303031373539353235363331, 'TF', 'French Southern Territories', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('108.61.208.232/32', '108.61.208.232', '108.61.208.232', 0x30303030303031383135393930353034, 0x30303030303031383135393930353034, 'TF', 'French Southern Territories', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('45.32.150.252/32', '45.32.150.252', '45.32.150.252', 0x30303030303030373537313130353234, 0x30303030303030373537313130353234, 'TF', 'French Southern Territories', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('45.59.175.0/24', '45.59.175.0', '45.59.175.255', 0x30303030303030373538383836313434, 0x30303030303030373538383836333939, 'TF', 'French Southern Territories', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('45.76.44.196/32', '45.76.44.196', '45.76.44.196', 0x30303030303030373539393636393136, 0x30303030303030373539393636393136, 'TF', 'French Southern Territories', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('46.36.200.101/32', '46.36.200.101', '46.36.200.101', 0x30303030303030373734313632353333, 0x30303030303030373734313632353333, 'TF', 'French Southern Territories', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('46.36.200.102/31', '46.36.200.102', '46.36.200.103', 0x30303030303030373734313632353334, 0x30303030303030373734313632353335, 'TF', 'French Southern Territories', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('46.36.200.104/30', '46.36.200.104', '46.36.200.107', 0x30303030303030373734313632353336, 0x30303030303030373734313632353339, 'TF', 'French Southern Territories', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('46.36.200.108/31', '46.36.200.108', '46.36.200.109', 0x30303030303030373734313632353430, 0x30303030303030373734313632353431, 'TF', 'French Southern Territories', 'AN');
INSERT INTO `d3geoip` (`D3IP`, `D3STARTIP`, `D3ENDIP`, `D3STARTIPBIN`, `D3ENDIPBIN`, `D3ISO`, `D3COUNTRYNAME`, `D3CONTINENTCODE`) VALUES ('46.36.200.110/32', '46.36.200.110', '46.36.200.110', 0x30303030303030373734313632353432, 0x30303030303030373734313632353432, 'TF', 'French Southern Territories', 'AN');

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,150 @@
insert into d3geoip (D3IP, D3STARTIP, D3ENDIP, D3STARTIPBIN, D3ENDIPBIN, D3ISO, D3COUNTRYNAME, D3CONTINENTCODE)
values ('104.28.123.20/32', '104.28.123.20', '104.28.123.20', 0x30303030303031373436363936393830, 0x30303030303031373436363936393830, 'AQ', 'Antarctica', 'AN'),
('104.28.212.152/31', '104.28.212.152', '104.28.212.153', 0x30303030303031373436373139383936, 0x30303030303031373436373139383937, 'AQ', 'Antarctica', 'AN'),
('104.28.22.115/32', '104.28.22.115', '104.28.22.115', 0x30303030303031373436363731323139, 0x30303030303031373436363731323139, 'AQ', 'Antarctica', 'AN'),
('104.28.22.116/32', '104.28.22.116', '104.28.22.116', 0x30303030303031373436363731323230, 0x30303030303031373436363731323230, 'AQ', 'Antarctica', 'AN'),
('104.28.22.117/32', '104.28.22.117', '104.28.22.117', 0x30303030303031373436363731323231, 0x30303030303031373436363731323231, 'BV', 'Bouvet Island', 'AN'),
('104.28.22.118/32', '104.28.22.118', '104.28.22.118', 0x30303030303031373436363731323232, 0x30303030303031373436363731323232, 'BV', 'Bouvet Island', 'AN'),
('104.28.22.119/32', '104.28.22.119', '104.28.22.119', 0x30303030303031373436363731323233, 0x30303030303031373436363731323233, 'GS', 'South Georgia and the South Sandwich Islands', 'AN'),
('104.28.22.120/32', '104.28.22.120', '104.28.22.120', 0x30303030303031373436363731323234, 0x30303030303031373436363731323234, 'GS', 'South Georgia and the South Sandwich Islands', 'AN'),
('104.28.22.121/32', '104.28.22.121', '104.28.22.121', 0x30303030303031373436363731323235, 0x30303030303031373436363731323235, 'TF', 'French Southern Territories', 'AN'),
('104.28.22.122/32', '104.28.22.122', '104.28.22.122', 0x30303030303031373436363731323236, 0x30303030303031373436363731323236, 'TF', 'French Southern Territories', 'AN'),
('104.28.22.123/32', '104.28.22.123', '104.28.22.123', 0x30303030303031373436363731323237, 0x30303030303031373436363731323237, 'HM', 'Heard and McDonald Islands', 'AN'),
('104.28.22.124/32', '104.28.22.124', '104.28.22.124', 0x30303030303031373436363731323238, 0x30303030303031373436363731323238, 'HM', 'Heard and McDonald Islands', 'AN'),
('104.28.244.152/31', '104.28.244.152', '104.28.244.153', 0x30303030303031373436373238303838, 0x30303030303031373436373238303839, 'AQ', 'Antarctica', 'AN'),
('104.28.92.69/32', '104.28.92.69', '104.28.92.69', 0x30303030303031373436363839303933, 0x30303030303031373436363839303933, 'AQ', 'Antarctica', 'AN'),
('108.61.208.232/32', '108.61.208.232', '108.61.208.232', 0x30303030303031383135393930353034, 0x30303030303031383135393930353034, 'TF', 'French Southern Territories', 'AN'),
('128.90.30.0/32', '128.90.30.0', '128.90.30.0', 0x30303030303032313533333839353638, 0x30303030303032313533333839353638, 'GS', 'South Georgia and the South Sandwich Islands', 'AN'),
('136.23.1.142/32', '136.23.1.142', '136.23.1.142', 0x30303030303032323833323039313032, 0x30303030303032323833323039313032, 'GS', 'South Georgia and the South Sandwich Islands', 'AN'),
('136.23.1.174/32', '136.23.1.174', '136.23.1.174', 0x30303030303032323833323039313334, 0x30303030303032323833323039313334, 'TF', 'French Southern Territories', 'AN'),
('136.23.1.240/32', '136.23.1.240', '136.23.1.240', 0x30303030303032323833323039323030, 0x30303030303032323833323039323030, 'BV', 'Bouvet Island', 'AN'),
('136.23.10.200/32', '136.23.10.200', '136.23.10.200', 0x30303030303032323833323131343634, 0x30303030303032323833323131343634, 'HM', 'Heard and McDonald Islands', 'AN'),
('136.23.11.195/32', '136.23.11.195', '136.23.11.195', 0x30303030303032323833323131373135, 0x30303030303032323833323131373135, 'AQ', 'Antarctica', 'AN'),
('136.23.20.49/32', '136.23.20.49', '136.23.20.49', 0x30303030303032323833323133383733, 0x30303030303032323833323133383733, 'TF', 'French Southern Territories', 'AN'),
('136.23.20.50/32', '136.23.20.50', '136.23.20.50', 0x30303030303032323833323133383734, 0x30303030303032323833323133383734, 'BV', 'Bouvet Island', 'AN'),
('136.23.21.42/32', '136.23.21.42', '136.23.21.42', 0x30303030303032323833323134313232, 0x30303030303032323833323134313232, 'GS', 'South Georgia and the South Sandwich Islands', 'AN'),
('136.23.21.44/32', '136.23.21.44', '136.23.21.44', 0x30303030303032323833323134313234, 0x30303030303032323833323134313234, 'HM', 'Heard and McDonald Islands', 'AN'),
('136.23.3.227/32', '136.23.3.227', '136.23.3.227', 0x30303030303032323833323039363939, 0x30303030303032323833323039363939, 'AQ', 'Antarctica', 'AN'),
('136.23.32.1/32', '136.23.32.1', '136.23.32.1', 0x30303030303032323833323136383937, 0x30303030303032323833323136383937, 'TF', 'French Southern Territories', 'AN'),
('136.23.32.3/32', '136.23.32.3', '136.23.32.3', 0x30303030303032323833323136383939, 0x30303030303032323833323136383939, 'BV', 'Bouvet Island', 'AN'),
('136.23.6.121/32', '136.23.6.121', '136.23.6.121', 0x30303030303032323833323130333631, 0x30303030303032323833323130333631, 'TF', 'French Southern Territories', 'AN'),
('136.23.6.122/32', '136.23.6.122', '136.23.6.122', 0x30303030303032323833323130333632, 0x30303030303032323833323130333632, 'BV', 'Bouvet Island', 'AN'),
('140.248.0.2/31', '140.248.0.2', '140.248.0.3', 0x30303030303032333635303633313730, 0x30303030303032333635303633313731, 'AQ', 'Antarctica', 'AN'),
('140.248.24.0/31', '140.248.24.0', '140.248.24.1', 0x30303030303032333635303639333132, 0x30303030303032333635303639333133, 'AQ', 'Antarctica', 'AN'),
('146.19.102.0/24', '146.19.102.0', '146.19.102.255', 0x30303030303032343530373434383332, 0x30303030303032343530373435303837, 'AQ', 'Antarctica', 'AN'),
('146.75.164.2/31', '146.75.164.2', '146.75.164.3', 0x30303030303032343534343330373232, 0x30303030303032343534343330373233, 'AQ', 'Antarctica', 'AN'),
('146.75.179.0/31', '146.75.179.0', '146.75.179.1', 0x30303030303032343534343334353630, 0x30303030303032343534343334353631, 'AQ', 'Antarctica', 'AN'),
('146.75.181.2/31', '146.75.181.2', '146.75.181.3', 0x30303030303032343534343335303734, 0x30303030303032343534343335303735, 'AQ', 'Antarctica', 'AN'),
('147.66.1.0/24', '147.66.1.0', '147.66.1.255', 0x30303030303032343730353736333834, 0x30303030303032343730353736363339, 'AQ', 'Antarctica', 'AN'),
('147.66.3.0/24', '147.66.3.0', '147.66.3.255', 0x30303030303032343730353736383936, 0x30303030303032343730353737313531, 'AQ', 'Antarctica', 'AN'),
('147.66.4.0/23', '147.66.4.0', '147.66.5.255', 0x30303030303032343730353737313532, 0x30303030303032343730353737363633, 'HM', 'Heard and McDonald Islands', 'AN'),
('147.66.6.0/24', '147.66.6.0', '147.66.6.255', 0x30303030303032343730353737363634, 0x30303030303032343730353737393139, 'HM', 'Heard and McDonald Islands', 'AN'),
('149.202.66.93/32', '149.202.66.93', '149.202.66.93', 0x30303030303032353133303630343435, 0x30303030303032353133303630343435, 'AQ', 'Antarctica', 'AN'),
('154.120.133.184/29', '154.120.133.184', '154.120.133.191', 0x30303030303032353931353839383136, 0x30303030303032353931353839383233, 'TF', 'French Southern Territories', 'AN'),
('154.120.133.192/29', '154.120.133.192', '154.120.133.199', 0x30303030303032353931353839383234, 0x30303030303032353931353839383331, 'TF', 'French Southern Territories', 'AN'),
('154.30.31.0/26', '154.30.31.0', '154.30.31.63', 0x30303030303032353835363635323830, 0x30303030303032353835363635333433, 'AQ', 'Antarctica', 'AN'),
('154.65.48.0/24', '154.65.48.0', '154.65.48.255', 0x30303030303032353837393633333932, 0x30303030303032353837393633363437, 'GS', 'South Georgia and the South Sandwich Islands', 'AN'),
('172.111.161.47/32', '172.111.161.47', '172.111.161.47', 0x30303030303032383932393936393131, 0x30303030303032383932393936393131, 'GS', 'South Georgia and the South Sandwich Islands', 'AN'),
('172.225.106.0/28', '172.225.106.0', '172.225.106.15', 0x30303030303032393030343533383838, 0x30303030303032393030343533393033, 'AQ', 'Antarctica', 'AN'),
('172.225.222.0/28', '172.225.222.0', '172.225.222.15', 0x30303030303032393030343833353834, 0x30303030303032393030343833353939, 'AQ', 'Antarctica', 'AN'),
('172.225.84.0/28', '172.225.84.0', '172.225.84.15', 0x30303030303032393030343438323536, 0x30303030303032393030343438323731, 'AQ', 'Antarctica', 'AN'),
('172.94.114.26/32', '172.94.114.26', '172.94.114.26', 0x30303030303032383931383730373436, 0x30303030303032383931383730373436, 'BV', 'Bouvet Island', 'AN'),
('172.94.114.71/32', '172.94.114.71', '172.94.114.71', 0x30303030303032383931383730373931, 0x30303030303032383931383730373931, 'BV', 'Bouvet Island', 'AN'),
('178.17.162.168/29', '178.17.162.168', '178.17.162.175', 0x30303030303032393837353030323030, 0x30303030303032393837353030323037, 'AQ', 'Antarctica', 'AN'),
('185.121.177.0/24', '185.121.177.0', '185.121.177.255', 0x30303030303033313131373630313238, 0x30303030303033313131373630333833, 'AQ', 'Antarctica', 'AN'),
('185.192.58.0/24', '185.192.58.0', '185.192.58.255', 0x30303030303033313136333832373230, 0x30303030303033313136333832393735, 'AQ', 'Antarctica', 'AN'),
('185.193.124.0/24', '185.193.124.0', '185.193.124.255', 0x30303030303033313136343635313532, 0x30303030303033313136343635343037, 'BV', 'Bouvet Island', 'AN'),
('185.242.226.88/30', '185.242.226.88', '185.242.226.91', 0x30303030303033313139373032363136, 0x30303030303033313139373032363139, 'AQ', 'Antarctica', 'AN'),
('193.163.85.0/24', '193.163.85.0', '193.163.85.255', 0x30303030303033323438373036383136, 0x30303030303033323438373037303731, 'AQ', 'Antarctica', 'AN'),
('194.50.111.217/32', '194.50.111.217', '194.50.111.217', 0x30303030303033323538303835333337, 0x30303030303033323538303835333337, 'TF', 'French Southern Territories', 'AN'),
('194.50.111.34/32', '194.50.111.34', '194.50.111.34', 0x30303030303033323538303835313534, 0x30303030303033323538303835313534, 'BV', 'Bouvet Island', 'AN'),
('194.50.111.9/32', '194.50.111.9', '194.50.111.9', 0x30303030303033323538303835313239, 0x30303030303033323538303835313239, 'AQ', 'Antarctica', 'AN'),
('194.50.111.91/32', '194.50.111.91', '194.50.111.91', 0x30303030303033323538303835323131, 0x30303030303033323538303835323131, 'GS', 'South Georgia and the South Sandwich Islands', 'AN'),
('194.50.111.97/32', '194.50.111.97', '194.50.111.97', 0x30303030303033323538303835323137, 0x30303030303033323538303835323137, 'HM', 'Heard and McDonald Islands', 'AN'),
('194.50.99.217/32', '194.50.99.217', '194.50.99.217', 0x30303030303033323538303832323635, 0x30303030303033323538303832323635, 'TF', 'French Southern Territories', 'AN'),
('194.50.99.251/32', '194.50.99.251', '194.50.99.251', 0x30303030303033323538303832323939, 0x30303030303033323538303832323939, 'AQ', 'Antarctica', 'AN'),
('194.50.99.252/32', '194.50.99.252', '194.50.99.252', 0x30303030303033323538303832333030, 0x30303030303033323538303832333030, 'AQ', 'Antarctica', 'AN'),
('194.50.99.34/32', '194.50.99.34', '194.50.99.34', 0x30303030303033323538303832303832, 0x30303030303033323538303832303832, 'BV', 'Bouvet Island', 'AN'),
('194.50.99.9/32', '194.50.99.9', '194.50.99.9', 0x30303030303033323538303832303537, 0x30303030303033323538303832303537, 'AQ', 'Antarctica', 'AN'),
('194.50.99.91/32', '194.50.99.91', '194.50.99.91', 0x30303030303033323538303832313339, 0x30303030303033323538303832313339, 'GS', 'South Georgia and the South Sandwich Islands', 'AN'),
('194.50.99.97/32', '194.50.99.97', '194.50.99.97', 0x30303030303033323538303832313435, 0x30303030303033323538303832313435, 'HM', 'Heard and McDonald Islands', 'AN'),
('195.181.215.206/32', '195.181.215.206', '195.181.215.206', 0x30303030303033323833343734333832, 0x30303030303033323833343734333832, 'BV', 'Bouvet Island', 'AN'),
('2001:41d0:d:265d::/64', '2001:41d0:d:265d::', '2001:41d0:d:265d:ffff:ffff:ffff:ffff', 0x200141D0000D265D0000000000000000, 0x200141D0000D265DFFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('202.144.198.0/24', '202.144.198.0', '202.144.198.255', 0x30303030303033333938343835353034, 0x30303030303033333938343835373539, 'AQ', 'Antarctica', 'AN'),
('209.242.220.0/24', '209.242.220.0', '209.242.220.255', 0x30303030303033353232333534313736, 0x30303030303033353232333534343331, 'GS', 'South Georgia and the South Sandwich Islands', 'AN'),
('2405:b500:600::/64', '2405:b500:600::', '2405:b500:600::ffff:ffff:ffff:ffff', 0x2405B500060000000000000000000000, 0x2405B50006000000FFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2405:b500:620::/64', '2405:b500:620::', '2405:b500:620::ffff:ffff:ffff:ffff', 0x2405B500062000000000000000000000, 0x2405B50006200000FFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2405:b500:640::/64', '2405:b500:640::', '2405:b500:640::ffff:ffff:ffff:ffff', 0x2405B500064000000000000000000000, 0x2405B50006400000FFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2405:b500:660::/64', '2405:b500:660::', '2405:b500:660::ffff:ffff:ffff:ffff', 0x2405B500066000000000000000000000, 0x2405B50006600000FFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2606:40:1020::/44', '2606:40:1020::', '2606:40:102f:ffff:ffff:ffff:ffff:ffff', 0x26060040102000000000000000000000, 0x26060040102FFFFFFFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2606:40:1260::/43', '2606:40:1260::', '2606:40:127f:ffff:ffff:ffff:ffff:ffff', 0x26060040126000000000000000000000, 0x26060040127FFFFFFFFFFFFFFFFFFFFF, 'GS', 'South Georgia and the South Sandwich Islands', 'AN'),
('2606:40:1730::/44', '2606:40:1730::', '2606:40:173f:ffff:ffff:ffff:ffff:ffff', 0x26060040173000000000000000000000, 0x26060040173FFFFFFFFFFFFFFFFFFFFF, 'TF', 'French Southern Territories', 'AN'),
('2606:40:1740::/44', '2606:40:1740::', '2606:40:174f:ffff:ffff:ffff:ffff:ffff', 0x26060040174000000000000000000000, 0x26060040174FFFFFFFFFFFFFFFFFFFFF, 'TF', 'French Southern Territories', 'AN'),
('2606:40:1750::/44', '2606:40:1750::', '2606:40:175f:ffff:ffff:ffff:ffff:ffff', 0x26060040175000000000000000000000, 0x26060040175FFFFFFFFFFFFFFFFFFFFF, 'HM', 'Heard and McDonald Islands', 'AN'),
('2606:40:1760::/44', '2606:40:1760::', '2606:40:176f:ffff:ffff:ffff:ffff:ffff', 0x26060040176000000000000000000000, 0x26060040176FFFFFFFFFFFFFFFFFFFFF, 'HM', 'Heard and McDonald Islands', 'AN'),
('2606:40:17d0::/44', '2606:40:17d0::', '2606:40:17df:ffff:ffff:ffff:ffff:ffff', 0x2606004017D000000000000000000000, 0x2606004017DFFFFFFFFFFFFFFFFFFFFF, 'BV', 'Bouvet Island', 'AN'),
('2606:40:17e0::/44', '2606:40:17e0::', '2606:40:17ef:ffff:ffff:ffff:ffff:ffff', 0x2606004017E000000000000000000000, 0x2606004017EFFFFFFFFFFFFFFFFFFFFF, 'BV', 'Bouvet Island', 'AN'),
('2606:40:1ad0::/44', '2606:40:1ad0::', '2606:40:1adf:ffff:ffff:ffff:ffff:ffff', 0x260600401AD000000000000000000000, 0x260600401ADFFFFFFFFFFFFFFFFFFFFF, 'TF', 'French Southern Territories', 'AN'),
('2606:40:1ae0::/44', '2606:40:1ae0::', '2606:40:1aef:ffff:ffff:ffff:ffff:ffff', 0x260600401AE000000000000000000000, 0x260600401AEFFFFFFFFFFFFFFFFFFFFF, 'TF', 'French Southern Territories', 'AN'),
('2606:40:1af0::/44', '2606:40:1af0::', '2606:40:1aff:ffff:ffff:ffff:ffff:ffff', 0x260600401AF000000000000000000000, 0x260600401AFFFFFFFFFFFFFFFFFFFFFF, 'BV', 'Bouvet Island', 'AN'),
('2606:40:1b00::/44', '2606:40:1b00::', '2606:40:1b0f:ffff:ffff:ffff:ffff:ffff', 0x260600401B0000000000000000000000, 0x260600401B0FFFFFFFFFFFFFFFFFFFFF, 'BV', 'Bouvet Island', 'AN'),
('2606:40:6bc::/46', '2606:40:6bc::', '2606:40:6bf:ffff:ffff:ffff:ffff:ffff', 0x2606004006BC00000000000000000000, 0x2606004006BFFFFFFFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2606:40:6c8::/46', '2606:40:6c8::', '2606:40:6cb:ffff:ffff:ffff:ffff:ffff', 0x2606004006C800000000000000000000, 0x2606004006CBFFFFFFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2606:54c0:600::/64', '2606:54c0:600::', '2606:54c0:600::ffff:ffff:ffff:ffff', 0x260654C0060000000000000000000000, 0x260654C006000000FFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2606:54c0:620::/64', '2606:54c0:620::', '2606:54c0:620::ffff:ffff:ffff:ffff', 0x260654C0062000000000000000000000, 0x260654C006200000FFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2606:54c0:640::/64', '2606:54c0:640::', '2606:54c0:640::ffff:ffff:ffff:ffff', 0x260654C0064000000000000000000000, 0x260654C006400000FFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2606:54c0:660::/64', '2606:54c0:660::', '2606:54c0:660::ffff:ffff:ffff:ffff', 0x260654C0066000000000000000000000, 0x260654C006600000FFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2a01:4f8:151:227::/64', '2a01:4f8:151:227::', '2a01:4f8:151:227:ffff:ffff:ffff:ffff', 0x2A0104F8015102270000000000000000, 0x2A0104F801510227FFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2a01:4f8:1c0c:405a::/64', '2a01:4f8:1c0c:405a::', '2a01:4f8:1c0c:405a:ffff:ffff:ffff:ffff', 0x2A0104F81C0C405A0000000000000000, 0x2A0104F81C0C405AFFFFFFFFFFFFFFFF, 'BV', 'Bouvet Island', 'AN'),
('2a02:26f7:d9c0::/42', '2a02:26f7:d9c0::', '2a02:26f7:d9ff:ffff:ffff:ffff:ffff:ffff', 0x2A0226F7D9C000000000000000000000, 0x2A0226F7D9FFFFFFFFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2a04:4e41:11:1::/64', '2a04:4e41:11:1::', '2a04:4e41:11:1:ffff:ffff:ffff:ffff', 0x2A044E41001100010000000000000000, 0x2A044E4100110001FFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2a04:4e41:1f::/64', '2a04:4e41:1f::', '2a04:4e41:1f::ffff:ffff:ffff:ffff', 0x2A044E41001F00000000000000000000, 0x2A044E41001F0000FFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2a04:4e41:21:1::/64', '2a04:4e41:21:1::', '2a04:4e41:21:1:ffff:ffff:ffff:ffff', 0x2A044E41002100010000000000000000, 0x2A044E4100210001FFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2a04:4e41:50:1::/64', '2a04:4e41:50:1::', '2a04:4e41:50:1:ffff:ffff:ffff:ffff', 0x2A044E41005000010000000000000000, 0x2A044E4100500001FFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2a04:4e41:5d::/64', '2a04:4e41:5d::', '2a04:4e41:5d::ffff:ffff:ffff:ffff', 0x2A044E41005D00000000000000000000, 0x2A044E41005D0000FFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2a05:dfc7:5353::/48', '2a05:dfc7:5353::', '2a05:dfc7:5353:ffff:ffff:ffff:ffff:ffff', 0x2A05DFC7535300000000000000000000, 0x2A05DFC75353FFFFFFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2a05:dfc7:5::/48', '2a05:dfc7:5::', '2a05:dfc7:5:ffff:ffff:ffff:ffff:ffff', 0x2A05DFC7000500000000000000000000, 0x2A05DFC70005FFFFFFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2a05:dfc7:beef::/48', '2a05:dfc7:beef::', '2a05:dfc7:beef:ffff:ffff:ffff:ffff:ffff', 0x2A05DFC7BEEF00000000000000000000, 0x2A05DFC7BEEFFFFFFFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2a09:4c0:0:22::/64', '2a09:4c0:0:22::', '2a09:4c0::22:ffff:ffff:ffff:ffff', 0x2A0904C0000000220000000000000000, 0x2A0904C000000022FFFFFFFFFFFFFFFF, 'BV', 'Bouvet Island', 'AN'),
('2a09:4c0:0:5b::/64', '2a09:4c0:0:5b::', '2a09:4c0::5b:ffff:ffff:ffff:ffff', 0x2A0904C00000005B0000000000000000, 0x2A0904C00000005BFFFFFFFFFFFFFFFF, 'GS', 'South Georgia and the South Sandwich Islands', 'AN'),
('2a09:4c0:0:61::/64', '2a09:4c0:0:61::', '2a09:4c0::61:ffff:ffff:ffff:ffff', 0x2A0904C0000000610000000000000000, 0x2A0904C000000061FFFFFFFFFFFFFFFF, 'HM', 'Heard and McDonald Islands', 'AN'),
('2a09:4c0:0:9::/64', '2a09:4c0:0:9::', '2a09:4c0::9:ffff:ffff:ffff:ffff', 0x2A0904C0000000090000000000000000, 0x2A0904C000000009FFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2a09:4c0:0:d9::/64', '2a09:4c0:0:d9::', '2a09:4c0::d9:ffff:ffff:ffff:ffff', 0x2A0904C0000000D90000000000000000, 0x2A0904C0000000D9FFFFFFFFFFFFFFFF, 'TF', 'French Southern Territories', 'AN'),
('2a0c:3b80:4151::/48', '2a0c:3b80:4151::', '2a0c:3b80:4151:ffff:ffff:ffff:ffff:ffff', 0x2A0C3B80415100000000000000000000, 0x2A0C3B804151FFFFFFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2a0c:3b80:4256::/48', '2a0c:3b80:4256::', '2a0c:3b80:4256:ffff:ffff:ffff:ffff:ffff', 0x2A0C3B80425600000000000000000000, 0x2A0C3B804256FFFFFFFFFFFFFFFFFFFF, 'BV', 'Bouvet Island', 'AN'),
('2a0c:3b80:4753::/48', '2a0c:3b80:4753::', '2a0c:3b80:4753:ffff:ffff:ffff:ffff:ffff', 0x2A0C3B80475300000000000000000000, 0x2A0C3B804753FFFFFFFFFFFFFFFFFFFF, 'GS', 'South Georgia and the South Sandwich Islands', 'AN'),
('2a0c:3b80:484d::/48', '2a0c:3b80:484d::', '2a0c:3b80:484d:ffff:ffff:ffff:ffff:ffff', 0x2A0C3B80484D00000000000000000000, 0x2A0C3B80484DFFFFFFFFFFFFFFFFFFFF, 'HM', 'Heard and McDonald Islands', 'AN'),
('2a0c:3b80:5446::/48', '2a0c:3b80:5446::', '2a0c:3b80:5446:ffff:ffff:ffff:ffff:ffff', 0x2A0C3B80544600000000000000000000, 0x2A0C3B805446FFFFFFFFFFFFFFFFFFFF, 'TF', 'French Southern Territories', 'AN'),
('2a0c:3b80:6171::/48', '2a0c:3b80:6171::', '2a0c:3b80:6171:ffff:ffff:ffff:ffff:ffff', 0x2A0C3B80617100000000000000000000, 0x2A0C3B806171FFFFFFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2a0c:3b80:6276::/48', '2a0c:3b80:6276::', '2a0c:3b80:6276:ffff:ffff:ffff:ffff:ffff', 0x2A0C3B80627600000000000000000000, 0x2A0C3B806276FFFFFFFFFFFFFFFFFFFF, 'BV', 'Bouvet Island', 'AN'),
('2a0c:3b80:6773::/48', '2a0c:3b80:6773::', '2a0c:3b80:6773:ffff:ffff:ffff:ffff:ffff', 0x2A0C3B80677300000000000000000000, 0x2A0C3B806773FFFFFFFFFFFFFFFFFFFF, 'GS', 'South Georgia and the South Sandwich Islands', 'AN'),
('2a0c:3b80:686d::/48', '2a0c:3b80:686d::', '2a0c:3b80:686d:ffff:ffff:ffff:ffff:ffff', 0x2A0C3B80686D00000000000000000000, 0x2A0C3B80686DFFFFFFFFFFFFFFFFFFFF, 'HM', 'Heard and McDonald Islands', 'AN'),
('2a0c:3b80:7466::/48', '2a0c:3b80:7466::', '2a0c:3b80:7466:ffff:ffff:ffff:ffff:ffff', 0x2A0C3B80746600000000000000000000, 0x2A0C3B807466FFFFFFFFFFFFFFFFFFFF, 'TF', 'French Southern Territories', 'AN'),
('2a0d:1a47:672::/48', '2a0d:1a47:672::', '2a0d:1a47:672:ffff:ffff:ffff:ffff:ffff', 0x2A0D1A47067200000000000000000000, 0x2A0D1A470672FFFFFFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2a0d:2406:e1e::/48', '2a0d:2406:e1e::', '2a0d:2406:e1e:ffff:ffff:ffff:ffff:ffff', 0x2A0D24060E1E00000000000000000000, 0x2A0D24060E1EFFFFFFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('2a0e:b107:198::/48', '2a0e:b107:198::', '2a0e:b107:198:ffff:ffff:ffff:ffff:ffff', 0x2A0EB107019800000000000000000000, 0x2A0EB1070198FFFFFFFFFFFFFFFFFFFF, 'AQ', 'Antarctica', 'AN'),
('31.28.161.170/32', '31.28.161.170', '31.28.161.170', 0x30303030303030353231393730303930, 0x30303030303030353231393730303930, 'BV', 'Bouvet Island', 'AN'),
('45.12.70.217/32', '45.12.70.217', '45.12.70.217', 0x30303030303030373535373739323839, 0x30303030303030373535373739323839, 'TF', 'French Southern Territories', 'AN'),
('45.12.70.34/32', '45.12.70.34', '45.12.70.34', 0x30303030303030373535373739313036, 0x30303030303030373535373739313036, 'BV', 'Bouvet Island', 'AN'),
('45.12.70.9/32', '45.12.70.9', '45.12.70.9', 0x30303030303030373535373739303831, 0x30303030303030373535373739303831, 'AQ', 'Antarctica', 'AN'),
('45.12.70.91/32', '45.12.70.91', '45.12.70.91', 0x30303030303030373535373739313633, 0x30303030303030373535373739313633, 'GS', 'South Georgia and the South Sandwich Islands', 'AN'),
('45.12.70.97/32', '45.12.70.97', '45.12.70.97', 0x30303030303030373535373739313639, 0x30303030303030373535373739313639, 'HM', 'Heard and McDonald Islands', 'AN'),
('45.12.71.217/32', '45.12.71.217', '45.12.71.217', 0x30303030303030373535373739353435, 0x30303030303030373535373739353435, 'TF', 'French Southern Territories', 'AN'),
('45.12.71.34/32', '45.12.71.34', '45.12.71.34', 0x30303030303030373535373739333632, 0x30303030303030373535373739333632, 'BV', 'Bouvet Island', 'AN'),
('45.12.71.9/32', '45.12.71.9', '45.12.71.9', 0x30303030303030373535373739333337, 0x30303030303030373535373739333337, 'AQ', 'Antarctica', 'AN'),
('45.12.71.91/32', '45.12.71.91', '45.12.71.91', 0x30303030303030373535373739343139, 0x30303030303030373535373739343139, 'GS', 'South Georgia and the South Sandwich Islands', 'AN'),
('45.12.71.97/32', '45.12.71.97', '45.12.71.97', 0x30303030303030373535373739343235, 0x30303030303030373535373739343235, 'HM', 'Heard and McDonald Islands', 'AN'),
('45.32.150.252/32', '45.32.150.252', '45.32.150.252', 0x30303030303030373537313130353234, 0x30303030303030373537313130353234, 'TF', 'French Southern Territories', 'AN'),
('45.76.44.196/32', '45.76.44.196', '45.76.44.196', 0x30303030303030373539393636393136, 0x30303030303030373539393636393136, 'TF', 'French Southern Territories', 'AN'),
('46.243.208.15/32', '46.243.208.15', '46.243.208.15', 0x30303030303030373837373330343437, 0x30303030303030373837373330343437, 'TF', 'French Southern Territories', 'AN'),
('46.36.200.101/32', '46.36.200.101', '46.36.200.101', 0x30303030303030373734313632353333, 0x30303030303030373734313632353333, 'TF', 'French Southern Territories', 'AN'),
('46.36.200.102/31', '46.36.200.102', '46.36.200.103', 0x30303030303030373734313632353334, 0x30303030303030373734313632353335, 'TF', 'French Southern Territories', 'AN'),
('46.36.200.104/30', '46.36.200.104', '46.36.200.107', 0x30303030303030373734313632353336, 0x30303030303030373734313632353339, 'TF', 'French Southern Territories', 'AN'),
('46.36.200.108/31', '46.36.200.108', '46.36.200.109', 0x30303030303030373734313632353430, 0x30303030303030373734313632353431, 'TF', 'French Southern Territories', 'AN'),
('46.36.200.110/32', '46.36.200.110', '46.36.200.110', 0x30303030303030373734313632353432, 0x30303030303030373734313632353432, 'TF', 'French Southern Territories', 'AN'),
('46.36.201.246/31', '46.36.201.246', '46.36.201.247', 0x30303030303030373734313632393334, 0x30303030303030373734313632393335, 'GS', 'South Georgia and the South Sandwich Islands', 'AN'),
('46.36.201.248/31', '46.36.201.248', '46.36.201.249', 0x30303030303030373734313632393336, 0x30303030303030373734313632393337, 'GS', 'South Georgia and the South Sandwich Islands', 'AN'),
('46.36.201.250/32', '46.36.201.250', '46.36.201.250', 0x30303030303030373734313632393338, 0x30303030303030373734313632393338, 'GS', 'South Georgia and the South Sandwich Islands', 'AN'),
('79.110.169.137/32', '79.110.169.137', '79.110.169.137', 0x30303030303031333332363532343235, 0x30303030303031333332363532343235, 'AQ', 'Antarctica', 'AN'),
('89.46.222.152/32', '89.46.222.152', '89.46.222.152', 0x30303030303031343936323433383634, 0x30303030303031343936323433383634, 'TF', 'French Southern Territories', 'AN'),
('94.130.180.93/32', '94.130.180.93', '94.130.180.93', 0x30303030303031353835363234313537, 0x30303030303031353835363234313537, 'GS', 'South Georgia and the South Sandwich Islands', 'AN');

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -38,7 +38,7 @@ ENGINE=InnoDB
/* import all IPv4 address from CSV file */
LOAD DATA LOW_PRIORITY LOCAL INFILE 'GeoLite2-Country-Blocks-IPv6.csv' INTO TABLE `IPv4` FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES (`network`, `geoname_id`, `registered_country_geoname_id`, `represented_country_geoname_id`, `is_anonymous_proxy`, `is_satellite_provider`);
LOAD DATA LOW_PRIORITY LOCAL INFILE 'GeoLite2-Country-Blocks-IPv6.csv' INTO TABLE `IPv6` FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES (`network`, `geoname_id`, `registered_country_geoname_id`, `represented_country_geoname_id`, `is_anonymous_proxy`, `is_satellite_provider`);
/* create a tmp table for imported county data */
@ -56,7 +56,7 @@ ENGINE=InnoDB
/* import all countries from CSV file */
LOAD DATA LOW_PRIORITY LOCAL INFILE 'GeoLite2-Country-Locations-en.csv' INTO TABLE `GeoIP`.`Countries` CHARACTER SET utf8 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES (`geoname_id`, `locale_code`, `continent_code`, `continent_name`, `country_iso_code`, `country_name`);
LOAD DATA LOW_PRIORITY LOCAL INFILE 'GeoLite2-Country-Locations-en.csv' INTO TABLE `Countries` CHARACTER SET utf8 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES (`geoname_id`, `locale_code`, `continent_code`, `continent_name`, `country_iso_code`, `country_name`);
/* copy all IPv4 data + calculated start and end IP to d3geoip table */
@ -84,7 +84,7 @@ INSERT INTO d3geoip (D3IP, D3STARTIP, D3ENDIP, D3STARTIPBIN, D3ENDIPBIN, D3ISO,
Countries
ON
IPv4.geoname_id = Countries.geoname_id
) as src
) as src;
/* copy all IPv6 data to d3geoip table */
@ -110,7 +110,7 @@ INSERT INTO d3geoip (D3IP, D3STARTIP, D3ENDIP, D3STARTIPBIN, D3ENDIPBIN, D3ISO,
Countries
ON
IPv6.geoname_id = Countries.geoname_id
) as src
) as src;
/* create a getFirstIp from IPv6 CIDR method */

View File

@ -23,7 +23,6 @@ use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
use Doctrine\DBAL\DBALException;
use OxidEsales\Eshop\Application\Component\CurrencyComponent;
use OxidEsales\Eshop\Application\Controller\FrontendController;
use OxidEsales\Eshop\Core\Controller\BaseController;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
@ -61,17 +60,16 @@ class GeoIpComponent extends BaseController
/** @var $oLocation d3geoip */
$oLocation = oxNew(d3geoip::class);
$oLocation->setCountryCurrency();
// moved to oxcmp_lang extension because here it's to late
// moved to oxcmp_lang extension because here it's too late
// $oLocation->setCountryLanguage();
if (!isset($oBasket)) {
$oBasket = $this->getSession()->getBasket();
$oBasket = Registry::getSession()->getBasket();
}
// call component again, if curr is registered before we changed it
// reason: own component can added after default components only
if ($oLocation->hasNotSetCurrency($oBasket->getBasketCurrency())) {
/** @var FrontendController $oActView */
$oActView = Registry::getConfig()->getActiveView();
$aComponents = $oActView->getComponents();

View File

@ -41,6 +41,9 @@ class d3_country_geoip extends AdminDetailsController
/**
* @return string
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
*/
public function render()
{
@ -245,7 +248,7 @@ class d3_country_geoip extends AdminDetailsController
if (is_array($aConfLanguages)) {
$i = 0;
reset($aConfLanguages);
while ((list($key, $val) = each($aConfLanguages))) {
foreach ($aConfLanguages as $key => $val) {
if (is_array($aLangParams)) {
//skipping non active languages
if (false == $aLangParams[$key]['active']) {

View File

@ -1,4 +1,5 @@
<?php
/**
* This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware.
@ -16,6 +17,8 @@
namespace D3\GeoIp\Application\Model;
use Assert\Assert;
use Assert\InvalidArgumentException;
use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod;
use D3\ModCfg\Application\Model\d3str;
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
@ -33,6 +36,9 @@ use OxidEsales\Eshop\Core\Registry;
class d3geoip extends BaseModel
{
const SKIPURL_REQUEST_PARAM = 'forceUrl';
const SKIPURL_SESSION_PARAM = 'd3geoipForceUrl';
protected $_sClassName = 'd3geoip';
private $_sModId = 'd3_geoip';
public $oCountry;
@ -50,7 +56,7 @@ class d3geoip extends BaseModel
/**
* get oxcountry object by given IP address (optional)
*
* @param string $sIP optional
* @param string|null $sIP optional
*
* @return Country
* @throws d3ShopCompatibilityAdapterException
@ -60,7 +66,7 @@ class d3geoip extends BaseModel
* @throws DatabaseErrorException
* @throws StandardException
*/
public function getUserLocationCountryObject($sIP = null)
public function getUserLocationCountryObject(string $sIP = null)
{
if (!$this->oCountry) {
startProfile(__METHOD__);
@ -120,25 +126,15 @@ class d3geoip extends BaseModel
) {
$sIP = $this->_getModConfig()->getValue('sTestCountryIp');
} else {
if(isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
$sIP = $_SERVER['HTTP_CF_CONNECTING_IP'];
} else if (isset($_SERVER['HTTP_X_REAL_IP'])) {
$sIP = $_SERVER['HTTP_X_REAL_IP'];
} else if (isset($_SERVER['HTTP_CLIENT_IP'])) {
$sIP = $_SERVER['HTTP_CLIENT_IP'];
} else if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$sIP = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else if(isset($_SERVER['HTTP_X_FORWARDED'])) {
$sIP = $_SERVER['HTTP_X_FORWARDED'];
} else if(isset($_SERVER['HTTP_FORWARDED_FOR'])) {
$sIP = $_SERVER['HTTP_FORWARDED_FOR'];
} else if(isset($_SERVER['HTTP_FORWARDED'])) {
$sIP = $_SERVER['HTTP_FORWARDED'];
} else if(isset($_SERVER['REMOTE_ADDR'])) {
$sIP = $_SERVER['REMOTE_ADDR'];
} else {
$sIP = 'UNKNOWN';
}
$sIP = $_SERVER['HTTP_CF_CONNECTING_IP']
?? $_SERVER['HTTP_X_REAL_IP']
?? $_SERVER['HTTP_CLIENT_IP']
?? $_SERVER['HTTP_X_FORWARDED_FOR']
?? $_SERVER['HTTP_X_FORWARDED']
?? $_SERVER['HTTP_FORWARDED_FOR']
?? $_SERVER['HTTP_FORWARDED']
?? $_SERVER['REMOTE_ADDR']
?? 'UNKNOWN';
}
$sIP = str_replace(' ', '', $sIP);
@ -150,12 +146,12 @@ class d3geoip extends BaseModel
/**
* get ISO alpha 2 ID by IP address
*
* @param int $sIP IP address
* @param string $sIP IP address
*
* @return string
* @throws DatabaseConnectionException
*/
public function loadByIP($sIP)
public function loadByIP(string $sIP)
{
startProfile(__METHOD__);
@ -193,7 +189,7 @@ class d3geoip extends BaseModel
* @return Country
* @throws DatabaseConnectionException
*/
public function getCountryObject($sISOAlpha)
public function getCountryObject(string $sISOAlpha)
{
startProfile(__METHOD__);
@ -249,34 +245,38 @@ class d3geoip extends BaseModel
{
startProfile(__METHOD__);
$this->_getModConfig()->d3getLog()->info(__CLASS__, __FUNCTION__, __LINE__, 'start shop or url switch');
$this->performURLSwitch();
$this->performShopSwitch();
$this->_getModConfig()->d3getLog()->info(__CLASS__, __FUNCTION__, __LINE__, 'end shop or url switch');
if (!$this->_getModConfig()->isActive()
|| false == $this->_getModConfig()->getValue('blChangeLang')) {
|| false == $this->_getModConfig()->getValue('blChangeLang')
) {
$this->_getModConfig()->d3getLog()->info(__CLASS__, __FUNCTION__, __LINE__, 'language change option or module is disabled');
stopProfile(__METHOD__);
return;
}
$oCountry = $this->getUserLocationCountryObject();
if (!$this->isAdmin()
&& Registry::getUtils()->isSearchEngine() === false
&& Registry::getSession()->getId()
&& Registry::getSession()->getVariable('d3isSetLang') === null
&& $oCountry->getId() && $oCountry->getFieldData('d3geoiplang') > -1
) {
$this->_getLog()->log(
d3log::INFO,
try {
$this->canChangeLanguage( $oCountry );
$language = (int) $oCountry->getFieldData('d3geoiplang');
$this->_getModConfig()->d3getLog()->info(
__CLASS__,
__FUNCTION__,
__LINE__,
'set language',
$this->getIP().' => '.$oCountry->getFieldData('d3geoiplang')
$this->getIP().' => '.$language
);
Registry::getLang()->setTplLanguage((int) $oCountry->getFieldData('d3geoiplang'));
Registry::getLang()->setBaseLanguage((int) $oCountry->getFieldData('d3geoiplang'));
Registry::getLang()->setTplLanguage($language);
Registry::getLang()->setBaseLanguage($language);
Registry::getSession()->setVariable('d3isSetLang', true);
Registry::getLogger()->debug('language set', [$language]);
} catch (InvalidArgumentException $e) {
Registry::getLogger()->debug($e->getMessage(), [$oCountry]);
}
stopProfile(__METHOD__);
@ -304,12 +304,9 @@ class d3geoip extends BaseModel
$oCountry = $this->getUserLocationCountryObject();
if (!$this->isAdmin()
&& Registry::getUtils()->isSearchEngine() === false
&& !Registry::getSession()->getVariable('d3isSetCurr')
&& $oCountry->getId()
&& $oCountry->getFieldData('d3geoipcur') > -1
) {
try {
$this->canChangeCurrency( $oCountry );
$this->_getLog()->log(
d3log::INFO,
__CLASS__,
@ -320,6 +317,8 @@ class d3geoip extends BaseModel
);
Registry::getConfig()->setActShopCurrency((int) $oCountry->getFieldData('d3geoipcur'));
Registry::getSession()->setVariable('d3isSetCurr', true);
} catch (InvalidArgumentException $e) {
Registry::getLogger()->debug($e->getMessage(), [$oCountry]);
}
stopProfile(__METHOD__);
@ -361,6 +360,7 @@ class d3geoip extends BaseModel
public function performShopSwitch()
{
if (!$this->_getModConfig()->isActive() || !$this->_getModConfig()->getValue('blChangeShop')) {
$this->_getModConfig()->d3getLog()->info(__CLASS__, __FUNCTION__, __LINE__, 'shop change option or module is disabled');
return;
}
@ -369,22 +369,17 @@ class d3geoip extends BaseModel
$oCountry = $this->getUserLocationCountryObject();
$iNewShop = $oCountry->getFieldData('d3geoipshop');
if (Registry::getRequest()->getRequestEscapedParameter('d3redirect') != 1
&& false == $this->isAdmin()
&& Registry::getUtils()->isSearchEngine() === false
&& $oCountry->getId()
&& $this->getConfig()->isMall()
&& $iNewShop > -1 &&
(
$iNewShop != $this->getConfig()->getShopId()
|| strtolower($this->getConfig()->getActiveView()->getClassKey()) == 'mallstart'
)
) {
$this->_getModConfig()->d3getLog()->info(__CLASS__, __FUNCTION__, __LINE__, 'check allowed shop change');
try {
$this->canChangeShop( $oCountry, $iNewShop );
$this->_getModConfig()->d3getLog()->info(__CLASS__, __FUNCTION__, __LINE__, 'prepare shop change to '.$iNewShop);
$oNewConf = new Config();
$oNewConf->setShopId($iNewShop);
$oNewConf->init();
$this->getConfig()->onShopChange();
Registry::getConfig()->onShopChange();
if (!Registry::getSession()->getVariable('d3isSetLang')
&& $this->_getModConfig()->getValue('blChangeLang')
@ -417,8 +412,12 @@ class d3geoip extends BaseModel
$this->getIP().' => '.$sUrl
);
$this->_getModConfig()->d3getLog()->info(__CLASS__, __FUNCTION__, __LINE__, 'change to shop url', $sUrl);
header("Location: ".$sUrl);
exit();
} catch (InvalidArgumentException $e) {
Registry::getLogger()->debug($e->getMessage(), [$oCountry]);
}
stopProfile(__METHOD__);
@ -443,15 +442,15 @@ class d3geoip extends BaseModel
startProfile(__METHOD__);
if (Registry::getRequest()->getRequestEscapedParameter(self::SKIPURL_REQUEST_PARAM)) {
Registry::getSession()->setVariable(self::SKIPURL_SESSION_PARAM, true);
}
$oCountry = $this->getUserLocationCountryObject();
if (false == (bool) Registry::getRequest()->getRequestEscapedParameter('forceUrl')
&& false == $this->isAdmin()
&& Registry::getUtils()->isSearchEngine() === false
&& $oCountry->getId()
&& $oCountry->getFieldData('d3geoipurl')
&& strlen(trim($oCountry->getFieldData('d3geoipurl'))) > 0
) {
try {
$this->canRedirect( $oCountry );
$sNewUrl = $oCountry->getFieldData('d3geoipurl');
$this->_getLog()->log(
@ -465,11 +464,24 @@ class d3geoip extends BaseModel
header("Location: ".$sNewUrl);
exit();
} catch (InvalidArgumentException $e) {
Registry::getLogger()->debug($e->getMessage(), [$oCountry]);
}
stopProfile(__METHOD__);
}
/**
* @return bool
*/
protected function dontSkipUrlRedirect()
{
return false === (
Registry::getRequest()->getRequestEscapedParameter(self::SKIPURL_REQUEST_PARAM) ||
Registry::getSession()->getVariable(self::SKIPURL_SESSION_PARAM)
);
}
/**
* get all shop urls
*
@ -484,7 +496,7 @@ class d3geoip extends BaseModel
$aShopUrls = array();
foreach ($oShoplist->arrayKeys() as $sId) {
$aShopUrls[$sId] = $this->getConfig()->getShopConfVar('sMallShopURL', $sId);
$aShopUrls[$sId] = Registry::getConfig()->getShopConfVar('sMallShopURL', $sId);
}
stopProfile(__METHOD__);
@ -521,5 +533,77 @@ class d3geoip extends BaseModel
return $this->oD3Log;
}
/**
* @param Country $oCountry
*
* @throws InvalidArgumentException
*/
protected function canRedirect( Country $oCountry )
{
Assert::that($this->dontSkipUrlRedirect())->true('redirect skip is not provided');
$this->isUserInFrontend();
Assert::that($oCountry->getId())->notBlank('no country loaded');
Assert::that($oCountry->getFieldData( 'd3geoipurl' ))->notBlank('no redirect url set');
}
/**
* @param Country $oCountry
*
* @return bool
*/
/**
* @param Country $oCountry
*
* @throws InvalidArgumentException
*/
protected function canChangeLanguage( Country $oCountry )
{
$this->isUserInFrontend();
Assert::that(Registry::getSession()->getVariable( 'd3isSetLang' ))->null('language already set');
Assert::that($oCountry->getId())->notBlank('no country loaded');
Assert::that($oCountry->getFieldData( 'd3geoiplang' ))->greaterThan(-1, 'no target language set');
}
/**
* @param Country $oCountry
*
* @throws InvalidArgumentException
*/
protected function canChangeCurrency( Country $oCountry )
{
$this->isUserInFrontend();
Assert::that(Registry::getSession()->getVariable( 'd3isSetCurr' ))->null('currency already set');
Assert::that($oCountry->getId())->notBlank('no country loaded');
Assert::that($oCountry->getFieldData( 'd3geoipcur' ))->greaterThan(-1, 'no target currency set');
}
/**
* @param Country $oCountry
* @param $iNewShop
*
* @throws InvalidArgumentException
*/
protected function canChangeShop( Country $oCountry, $iNewShop )
{
Assert::that(Registry::getRequest()->getRequestEscapedParameter( 'd3redirect' ))->notSame('1', 'redirect already performed');
$this->isUserInFrontend();
Assert::that($oCountry->getId())->notBlank('no country loaded');
Assert::that(Registry::getConfig()->isMall())->true('no mall installation');
Assert::that($iNewShop)->greaterThan(-1, 'no target shop id set');
Assert::that(
$iNewShop != Registry::getConfig()->getShopId() ||
strtolower( Registry::getConfig()->getActiveView()->getClassKey() ) == 'mallstart'
)->true('no different shop and no mallstart');
}
/**
* @throws InvalidArgumentException
*/
protected function isUserInFrontend()
{
Assert::that($this->isAdmin())->false('User is in admin');
Assert::that(Registry::getUtils()->isSearchEngine())->false('User is search engine');
}
}

View File

@ -14,12 +14,14 @@
* @link http://www.oxidmodule.com
*/
$sLangName = 'Deutsch';
$iLangNr = 0;
use D3\GeoIp\Application\Model\d3geoip;
$sLangName = 'Deutsch';
$iLangNr = 0;
// -------------------------------
// RESOURCE IDENTITFIER = STRING
// -------------------------------
$aLang = array(
$aLang = [
'charset' => 'UTF-8',
'd3mxgeoip' => "<i class='fa fa-globe'></i> GeoIP",
'd3mxgeoip_settings' => 'Einstellungen',
@ -58,7 +60,7 @@ $aLang = array(
'D3_GEOIP_SELURL_DESC' => 'Sobald im URL-Feld eine Eingabe vorhanden ist, wird bei '.
'passenden Kunden versucht, zur hinterlegten URL zu wechseln. Möchten Sie den Mandanten, die Währung und / '.
'oder die Sprache einstellen, entfernen Sie die URL.<br><br>Aktivieren / deaktivieren Sie den URL-Wechsel '.
'zusätzlich in den Modul-Grundeinstellungen.<br><br>Mit dem URL-Parameter "forceUrl=1" können Sie ungewollte URL-'.
'zusätzlich in den Modul-Grundeinstellungen.<br><br>Mit dem URL-Parameter "' . d3geoip::SKIPURL_REQUEST_PARAM . '=1" können Sie ungewollte URL-' .
'Weiterleitungen unterbinden.',
'D3_GEOIP_METADATA_TITLE' => 'DÂł GeoIP Vorauswahl',
@ -66,7 +68,7 @@ $aLang = array(
'D3_GEOIP_UPDATE_ITEMINSTALL' => 'Die umfangreiche IP-Liste kann leider nicht ĂĽber die '.
'automatische Installation eingebunden werden. Bitte installieren Sie diese manuell. '.PHP_EOL.PHP_EOL.
'Laden Sie bitte die aktuellen CSV-Daten des Anbieters Maxmind. In "setup+doku/importCSVtoMySQL" des Modulpaketes finden Sie weitere Informationen und die erforderlichen Datenbank-Befehle, um die nötigen Daten zu generieren.'.PHP_EOL.PHP_EOL.
'Alternativ finden Sie die erforderlichen Daten im Installationspaket des Moduls unter "setup+doku/geoip-data_*". '.PHP_EOL.PHP_EOL.
'Laden Sie bitte die aktuellen CSV-Daten des Anbieters Maxmind. In "docs/importCSVtoMySQL" des Modulpaketes finden Sie weitere Informationen und die erforderlichen Datenbank-Befehle, um die nötigen Daten zu generieren.'.PHP_EOL.PHP_EOL.
'Alternativ finden Sie die erforderlichen Daten im Installationspaket des Moduls unter "docs/geoip-data_*". '.PHP_EOL.PHP_EOL.
'FĂĽhren Sie die SQL-Datei(en) bitte in Ihrer Datenbank aus.',
);
];

View File

@ -30,7 +30,7 @@ function EditThis( sID)
function _groupExp(el) {
var _cur = el.parentNode;
if (_cur.className == "exp") _cur.className = "";
if (_cur.className === "exp") _cur.className = "";
else _cur.className = "exp";
}
@ -47,7 +47,7 @@ function showFormatSettings(sElemId, visible, blUseOldElem)
sOldSettingElem = sElemId;
}
if (visible == true) {
if (visible === true) {
document.getElementById(sElemId).style.display = 'block';
} else {
document.getElementById(sElemId).style.display = 'none';
@ -57,7 +57,7 @@ function showFormatSettings(sElemId, visible, blUseOldElem)
-->
</script>
<style type="text/css">
<style>
<!--
fieldset{
border: 1px inset black;
@ -104,9 +104,9 @@ td.edittext {
<input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="editval[d3_cfg_mod__oxid]" value="[{$oxid}]">
<table border="0" width="98%">
<table style="border: 0; width: 98%">
<tr>
<td valign="top" class="edittext">
<td style="vertical-align: top" class="edittext">
[{include file="d3_cfg_mod_active.tpl"}]
@ -224,9 +224,9 @@ td.edittext {
</div>
</div>
<table width="100%">
<table style="width: 100%">
<tr>
<td class="edittext ext_edittext" align="left">
<td class="edittext ext_edittext" style="text-align: left">
<span class="d3modcfg_btn icon status_ok">
<input type="submit" name="save" value="[{oxmultilang ident="D3_GENERAL_GEOIP_SAVE"}]">
<span></span>

View File

@ -43,7 +43,9 @@ class d3_oxcmp_lang_geoip extends d3_oxcmp_lang_geoip_parent
if (d3_cfg_mod::get($this->_sModId)->isActive()) {
/** @var $oLocation d3geoip */
$oLocation = oxNew(d3geoip::class);
d3_cfg_mod::get($this->_sModId)->d3getLog()->info(__CLASS__, __FUNCTION__, __LINE__, 'start perform language switch');
$oLocation->setCountryLanguage();
d3_cfg_mod::get($this->_sModId)->d3getLog()->info(__CLASS__, __FUNCTION__, __LINE__, 'end perform language switch');
}
parent::init();

View File

@ -22,16 +22,16 @@ use OxidEsales\Eshop\Core\Registry;
class d3_oxshopcontrol_geoip extends d3_oxshopcontrol_geoip_parent
{
/**
* @param null $sClass
* @param null $sFunction
* @param null $aParams
* @param null $aViewsChain
* @param null $controllerKey
* @param null $function
* @param null $parameters
* @param null $viewsChain
*/
public function start ($sClass = null, $sFunction = null, $aParams = null, $aViewsChain = null)
public function start ($controllerKey = null, $function = null, $parameters = null, $viewsChain = null)
{
$this->_d3AddGeoIpComponent();
parent::start($sClass, $sFunction, $aParams, $aViewsChain);
parent::start( $controllerKey, $function, $parameters, $viewsChain);
}
/**

View File

@ -16,30 +16,37 @@
namespace D3\GeoIp\Setup;
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
use D3\ModCfg\Application\Model\Exception\d3ParameterNotFoundException;
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
use D3\ModCfg\Application\Model\Install\d3install_updatebase;
use D3\ModCfg\Application\Model\Installwizzard\d3installdbfield;
use D3\ModCfg\Application\Model\Installwizzard\d3installdbtable;
use Doctrine\DBAL\DBALException;
use Exception;
use OxidEsales\Eshop\Application\Model\Shop;
use OxidEsales\Eshop\Core\DatabaseProvider;
use OxidEsales\Eshop\Core\Exception\ConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException as DatabaseErrorException;
use OxidEsales\Eshop\Core\Exception\StandardException;
use OxidEsales\Eshop\Core\Registry;
use OxidEsales\Facts\Facts;
use ReflectionException;
class d3geoip_update extends d3install_updatebase
{
public $sModKey = 'd3_geoip';
public $sModName = 'GeoIP';
public $sModVersion = '4.0.2.0';
public $sModRevision = '4020';
public $sModVersion = '4.1.2.0';
public $sModRevision = '4120';
public $sBaseConf = '--------------------------------------------------------------------------------
Idvv2==N0IxdktTWFExSTZnejNxbzR0dzQ4Y3lnYzArVWZISEZKNWRoaXBwMTRxNjFlQmpHSFZObk8za
2QrUGRuT3U1T3Nua090WThJak1jVFFxdGc1K0QxMFl6WDB3VUhzakVFM3hPYXc4RjBIWTVtZVR4YlBRe
TdZOWZpNWdpajR1NWFzdjc3aVN6YkZra1A2NHQ5ZWVXS0lsWG5tVU1xcG9GaWRpOU5MVDRjZDZUNXVFd
lVzUXlZYnlheHl6Qy9sNWFRdWdDQUFXM21NRUdnR0V1amkvVmpwaGxWZ1FIaU51M1pUaTdzMk9IeFNjb
kpZVEp5ZWxzUGlJUWZFbkdpbVBWZHN4ZStNcW1QWWwrV21ESTFpQlA1TWRCVG9BOEFqSHRMcXBsZHdjM
1loSHpoN1BZSjk2MUR0a0hIWlJYWUlCbnY=
4I6v2==YXpDb3ovcGlNbStFUXg1UXBUR0h6aXRiS2hZMHorN3d3Q2ZjTmVWcE8yNy9COFRidHFqL0VhW
WZVS2hvY2JlQ29EcTRoaEJJQjJoVXc5M1B3TmFseXEyUHQrUHEveUtGUFdhVW5wWFc3d2xTNGcyeDE3a
DBHbFBicHR1TWxWMkxZQURFMFNnV05ubllTcGRWdkw1SlJNNmk0OVBBT3Y5N0dRb1drWXJSUStsc1Q5Z
Gh0L09EMnhVYW9FUGNGSG5jcktXSXpVeE10Tm9IT2VmQW1VSFZQWmxaMG0ycHNKeks1cUNCWnI4c1Q3M
1F2U3RMY1FsWHRRTGRRL2kzN1pTaWpKWXBlaXBFYVFTN3lOWnpnZVl5blVhWkxNMnBqT1JQT3M2cnJYT
S9kMERSZUFscmR6VW9iZlZVZjhoYzNUdWo=
--------------------------------------------------------------------------------';
public $sRequirements = '';
public $sBaseValue = '';
@ -238,6 +245,9 @@ kpZVEp5ZWxzUGlJUWZFbkdpbVBWZHN4ZStNcW1QWWwrV21ESTFpQlA1TWRCVG9BOEFqSHRMcXBsZHdjM
/**
* @return bool
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
*/
public function checkGeoIpTableExist()
{
@ -246,12 +256,16 @@ kpZVEp5ZWxzUGlJUWZFbkdpbVBWZHN4ZStNcW1QWWwrV21ESTFpQlA1TWRCVG9BOEFqSHRMcXBsZHdjM
/**
* @return bool
* @throws ConnectionException
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
*/
public function updateGeoIpTableExist()
{
$blRet = false;
if ($this->checkGeoIpTableExist()) {
$blRet = $this->_addTable2('d3geoip', $this->aFields, $this->aIndizes, 'GeoIP', 'InnoDB');
$blRet = $this->_addTable2('d3geoip', $this->aFields, $this->aIndizes, 'GeoIP');
}
return $blRet;
@ -315,12 +329,13 @@ kpZVEp5ZWxzUGlJUWZFbkdpbVBWZHN4ZStNcW1QWWwrV21ESTFpQlA1TWRCVG9BOEFqSHRMcXBsZHdjM
{
/** @var d3installdbtable $oDbTable */
$oDbTable = oxNew(d3installdbtable::class, $this);
$blRet = $oDbTable->changeTableEngine('d3geoip', 'InnoDB');
return $blRet;
return $oDbTable->changeTableEngine('d3geoip', 'InnoDB');
}
/**
* @return bool
* @throws DBALException
* @throws DatabaseConnectionException
*/
public function checkGeoIpItems()
{
@ -328,9 +343,7 @@ kpZVEp5ZWxzUGlJUWZFbkdpbVBWZHN4ZStNcW1QWWwrV21ESTFpQlA1TWRCVG9BOEFqSHRMcXBsZHdjM
'D3ISO' => 'DE',
);
$blRet = $this->_checkTableItemNotExist('d3geoip', $aWhere);
return $blRet;
return $this->_checkTableItemNotExist('d3geoip', $aWhere);
}
/**
@ -369,6 +382,11 @@ kpZVEp5ZWxzUGlJUWZFbkdpbVBWZHN4ZStNcW1QWWwrV21ESTFpQlA1TWRCVG9BOEFqSHRMcXBsZHdjM
/**
* @return bool
* @throws ConnectionException
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws Exception
*/
public function updateModCfgItemExist()
{
@ -453,7 +471,7 @@ kpZVEp5ZWxzUGlJUWZFbkdpbVBWZHN4ZStNcW1QWWwrV21ESTFpQlA1TWRCVG9BOEFqSHRMcXBsZHdjM
),
array (
'fieldname' => 'OXSHOPVERSION',
'content' => Registry::getConfig()->getEdition(),
'content' => oxNew(Facts::class)->getEdition(),
'force_update' => true,
'use_quote' => true,
'use_multilang' => false,
@ -493,7 +511,12 @@ kpZVEp5ZWxzUGlJUWZFbkdpbVBWZHN4ZStNcW1QWWwrV21ESTFpQlA1TWRCVG9BOEFqSHRMcXBsZHdjM
/**
* change default value for shop id in EE
*
* @return bool
* @throws ConnectionException
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
*/
public function checkGeoIpFields()
{
@ -506,7 +529,12 @@ kpZVEp5ZWxzUGlJUWZFbkdpbVBWZHN4ZStNcW1QWWwrV21ESTFpQlA1TWRCVG9BOEFqSHRMcXBsZHdjM
/**
* change default value for shop id in EE
*
* @return bool
* @throws ConnectionException
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
*/
public function fixGeoIpFields()
{
@ -519,6 +547,14 @@ kpZVEp5ZWxzUGlJUWZFbkdpbVBWZHN4ZStNcW1QWWwrV21ESTFpQlA1TWRCVG9BOEFqSHRMcXBsZHdjM
/**
* @return bool
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws d3ParameterNotFoundException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
* @throws StandardException
* @throws ReflectionException
*/
public function hasUnregisteredFiles()
{
@ -527,6 +563,13 @@ kpZVEp5ZWxzUGlJUWZFbkdpbVBWZHN4ZStNcW1QWWwrV21ESTFpQlA1TWRCVG9BOEFqSHRMcXBsZHdjM
/**
* @return bool
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws ReflectionException
* @throws StandardException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
*/
public function showUnregisteredFiles()
{
@ -602,10 +645,8 @@ kpZVEp5ZWxzUGlJUWZFbkdpbVBWZHN4ZStNcW1QWWwrV21ESTFpQlA1TWRCVG9BOEFqSHRMcXBsZHdjM
" AND oxmodule = ".$oDb->quote($sModuleId);
$aResult = $oDb->getAll($sSelect);
$aUserComponents = is_array($aResult) && count($aResult)
return is_array($aResult) && count($aResult)
? Registry::getConfig()->decodeValue($aResult[0]['type'], $aResult[0]['value'])
: null;
return $aUserComponents;
}
}

View File

@ -30,10 +30,10 @@ $aModule = [
'en' => '',
],
'thumbnail' => 'picture.png',
'version' => '4.0.2.0',
'version' => '4.1.2.0',
'author' => 'D&sup3; Data Development (Inh.: Thomas Dartsch)',
'email' => 'support@shopmodule.com',
'url' => 'http://www.oxidmodule.com/',
'url' => 'https://www.oxidmodule.com/',
'extend' => [
LanguageComponent::class => d3_oxcmp_lang_geoip::class,
ShopControl::class => d3_oxshopcontrol_geoip::class