@@ -67,7 +67,7 @@ class BxDolScoreQuery extends BxDolObjectQuery
$sWhereClause .= " AND `author_id` = :author_id";
}
else {
- $aBindings['author_nip'] = ip2long($sAuthorIp);
+ $aBindings['author_nip'] = bx_get_ip_hash($sAuthorIp);
$sWhereClause .= " AND `author_nip` = :author_nip";
@@ -102,7 +102,7 @@ class BxDolScoreQuery extends BxDolObjectQuery
if((int)$this->query("INSERT INTO `{$this->_sTableTrack}` SET " . $this->arrayToSQL(array(
'object_id' => $iObjectId,
'author_id' => $iAuthorId,
- 'author_nip' => ip2long($sAuthorIp),
+ 'author_nip' => bx_get_ip_hash($sAuthorIp),
'type' => $sType,
'date' => time()
))) > 0)
@@ -51,7 +51,7 @@ class BxDolViewQuery extends BxDolObjectQuery
public function doView($iObjectId, $iAuthorId, $sAuthorIp)
{
- $iAuthorNip = ip2long($sAuthorIp);
+ $iAuthorNip = bx_get_ip_hash($sAuthorIp);
$aBindings = array(
'object_id' => $iObjectId
@@ -45,7 +45,7 @@ class BxDolVoteQuery extends BxDolObjectQuery
@@ -85,7 +85,7 @@ class BxDolVoteQuery extends BxDolObjectQuery
return $this->_deleteTrack($iObjectId, $iAuthorId);
$iNow = time();
$sQuery = $this->prepare("INSERT INTO `{$this->_sTableTrack}` SET `object_id` = ?, `author_id` = ?, `author_nip` = ?, `value` = ?, `date` = ?", $iObjectId, $iAuthorId, $iAuthorNip, $iValue, $iNow);
if((int)$this->query($sQuery) > 0)
return $this->lastId();
@@ -65,7 +65,7 @@ class BxDolVoteReactionsQuery extends BxDolVoteQuery
$sQuery = $this->prepare("INSERT INTO `{$this->_sTableTrack}` SET `object_id` = ?, `author_id` = ?, `author_nip` = ?, `reaction` = ?, `value` = ?, `date` = ?", $iObjectId, $iAuthorId, $iAuthorNip, $sReaction, $iValue, $iNow);
@@ -2174,6 +2174,11 @@ function bx_setcookie($sName, $sValue = "", $oExpiresOrOptions = 0, $sPath = 'au
+function bx_get_ip_hash($sIp)
+{
+ return sprintf("%u", crc32(crc32($sIp) + crc32(BX_DOL_SECRET)));
+}
+
function is_private_ip ($sIp)
if (filter_var($sIp, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6) !== $sIp)
@@ -629,7 +629,7 @@ class BxBaseModTextModule extends BxBaseModGeneralModule implements iBxDolConten
if(empty($iAuthorId)) {
$iAuthorId = bx_get_logged_profile_id();
- $iAuthorIp = ip2long(getVisitorIP());
+ $iAuthorIp = bx_get_ip_hash(getVisitorIP());
return $this->_oDb->isPollPerformed($iObjectId, $iAuthorId, $iAuthorIp);
@@ -41,7 +41,7 @@ class BxMarketAlertsResponse extends BxBaseModTextAlertsResponse
return;
$oModule->_oDb->updateFile(array('downloads' => $aFile['downloads'] + 1), array('file_id' => $iFile));
- $oModule->_oDb->insertDownload($iFile, $oAlert->iSender, ip2long($oAlert->aExtras['profile_ip']));
+ $oModule->_oDb->insertDownload($iFile, $oAlert->iSender, bx_get_ip_hash($oAlert->aExtras['profile_ip']));
protected function processBxMarketPhotosFileDeleted(&$oAlert)
@@ -203,7 +203,7 @@ class BxPollsModule extends BxBaseModTextModule
return $this->_oDb->isPerformed($iObjectId, $iAuthorId, $iAuthorIp);
@@ -102,7 +102,7 @@ class BxTimelineDb extends BxBaseModNotificationsDb
public function insertRepostTrack($iEventId, $iAuthorId, $sAuthorIp, $iRepostedId)
$sQuery = $this->prepare("INSERT INTO `{$this->_sTableRepostsTrack}` SET `event_id` = ?, `author_id` = ?, `author_nip` = ?, `reposted_id` = ?, `date` = ?", $iEventId, $iAuthorId, $iAuthorNip, $iRepostedId, $iNow);
return (int)$this->query($sQuery) > 0;
@@ -279,7 +279,7 @@ class BxBaseReport extends BxDolReport
return array('code' => 2, 'message' => $this->msgErrAllowedReport());
$iAuthorId = $this->_getAuthorId();
- $iAuthorNip = ip2long($this->_getAuthorIp());
+ $iAuthorNip = bx_get_ip_hash($this->_getAuthorIp());
$iObjectId = $this->_iId;
$iObjectAuthorId = $this->_oQuery->getObjectAuthorId($iObjectId);