Source of file IPExtension.php
Size: 1,163 Bytes - Last Modified: 2021-12-23T10:00:20+00:00
/var/www/docs.ssmods.com/process/src/src/IPExtension.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | <?php namespace LeKoala\CommonExtensions; use SilverStripe\ORM\DataExtension; use SilverStripe\Control\Controller; use SilverStripe\Core\Injector\Injector; /** * Store IP v4 in plain text (easier to read from the db) * For IP v4 + v6 and more efficient storage, use BinaryIPExtension * * @property \LeKoala\CommonExtensions\IPExtension $owner * @property string $IP */ class IPExtension extends DataExtension { private static $db = [ "IP" => "Varchar(45)" ]; public function onBeforeWrite() { if (!Controller::has_curr()) { return; } $controller = Controller::curr(); // This is best used when IP is set on creation if (!$this->owner->IP) { $ip = $controller->getRequest()->getIP(); $this->owner->IP = $ip; } } /** * @return \LeKoala\GeoTools\Models\Address */ public function getIpLocationDetails() { $graphloc = Injector::inst()->get(\LeKoala\Geo\Services\Geolocator::class); if (!$this->owner->IP) { return false; } return $graphloc->geolocate($this->owner->IP); } } |