我仍然对此主题感到困惑,并请求有关如何通过PHP检查访客IP地址的任何帮助和参考.
我知道在尝试编写代码之前先问一些东西似乎很懒,但是现在,我也在谷歌上搜索它.希望有人可以给出一般的广泛答案或一些阅读链接?
顺便说一句,当我们必须编写这样的一些功能时需要考虑什么?
PS:非常感谢大家.这是有启发性的论点.坦率地说,我更多地选择答案作为尊重而不是真理.因为到现在为止我还是不知道对的.也许在我对这个话题本身有一个坚定的理解之前,我需要更多年的学习.
我试图获取客户端浏览网站的IP地址
$_SERVER['REMOTE_ADDR'],但我没有得到客户端的确切IP请帮帮我...谢谢
我正在制作一个小帖子系统,所以我可以在我的网站上发帖子,人们可以喜欢和不喜欢它.
它看起来像这样:

目前,您可以根据需要多次投票和投票.我知道如何使用JavaScript无法点击图像,但我还需要一种在PHP中执行此操作的方法,因为有人可以使用fireBug或Chrome控制台再次点击按钮.
这可能是我在PHP中实际做的第一件事,所以我还是初学者.谢谢你的任何建议.
我正在调解从客户端A到服务器B的请求.客户端A可以是电话或笔记本电脑.服务器B想知道客户端A的IP地址,但他们正在寻找它$_SERVER['REMOTE_ADDR'].因为我正在点击服务器B,他们正在获得"错误"的价值$_SERVER['REMOTE_ADDR']- 他们正在获取我服务器的IP地址.我该怎么办才能让服务器B $_SERVER['REMOTE_ADDR']在终端访问时看到客户端的IP地址?
我的客户网站有一个"在线评估"部分,其中包含40个字段表单.每个字段都需要用户输入,我有程序允许50到200个字符,具体取决于问题.
然后将表单发送到客户端的邮件,但它也存储在数据库中,以便客户端稍后可以检查所有表单.
我正在使用codeigniter,我使用活动记录来阻止sql注入.我也用我在另一个问题中发现的方法对它进行了spambot验证.我必须隐藏字段,一个隐藏着css.如果值已填充或不匹配,则表单不会验证.(顺便说一下,这还不够,还是我还应该添加验证码?).
代码是这样的:
<p class="mail"><input type="text" name="mail" id="mail" /></p> //then I hyde this with css
<input type="hidden" name="mail" value="some value" />
Run Code Online (Sandbox Code Playgroud)
然后我验证它
if( $this->input->post('mail', true) != '' AND $this->input->post('mail', true) != 'some value')
{
die('could not send your request');
}
else
{
process form
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,在创建数据库表时,因为我添加了42个字段,我不知道它是否是我的电脑,但我的互联网连接真的变慢了,几乎崩溃了.我担心攻击者可能会尝试多次填写此表单并完全填充每个字段,然后数据库崩溃了?这是真的吗?
将该表划分为两个或三个不同的表是否更安全?还是没有意义?我不太了解安全性,我正在努力寻找可以学习的地方,但我找到的所有信息都充满了我不太懂的术语,所以这很难.我非常感谢你的帮助.
编辑:这样做的正确方法是什么?
我在我的网站上有一个联系表格,我想知道用户的IP地址是什么,我在本地测试XAMPP上试过这个PHP代码:
function getRealIpAddr()
{
if (!empty($_SERVER['HTTP_CLIENT_IP']))
//check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
//to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
$ipaddress= getRealIpAddr();
echo "my ip address is" . $ipaddress;
Run Code Online (Sandbox Code Playgroud)
但结果总是如此
"my ip address is::1",
Run Code Online (Sandbox Code Playgroud)
我不知道代码有什么问题.
在 laravel 中,当我想从中获取访问者 IP 时,request()->getClientIp()总是显示我的服务器 IP 并诅咒它不正确,我读到了有关此问题的信息,我认为它与 cloudflare 和 laravel TrustProxies 有关,但我不知道该怎么办。
如何获取真实访客IP地址?
这是我的 $_Server 转储
array:42 [
"REDIRECT_STATUS" => "200"
"HTTP_X_FORWARDED_HOST" => "dpaper.ir"
"HTTP_X_FORWARDED_PROTO" => "https"
"HTTP_X_FORWARDED_PORT" => "443"
"HTTP_X_FORWARDED_FOR" => "::ffff:46.225.69.114"
"HTTP_COOKIE" => "_ga=GA1.2.199690116.1583749582; _gid=GA1.2.452860032.1584212542; remember_web_59ba36addc2b2f9401580f014c7f58ea4e30989d=eyJpdiI6ImhYWmc5OW4zTktlakRhWDRYTmpGNmc9P"
"HTTP_ACCEPT_LANGUAGE" => "en-US,en;q=0.9,fa;q=0.8,th;q=0.7"
"HTTP_ACCEPT_ENCODING" => "gzip, deflate, br"
"HTTP_SEC_FETCH_USER" => "?1"
"HTTP_SEC_FETCH_MODE" => "navigate"
"HTTP_SEC_FETCH_SITE" => "none"
"HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
"HTTP_USER_AGENT" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"
"HTTP_UPGRADE_INSECURE_REQUESTS" => "1"
"HTTP_CONNECTION" => "keep-alive"
"HTTP_HOST" => …Run Code Online (Sandbox Code Playgroud) php ×7
ip-address ×3
client-side ×1
codeigniter ×1
database ×1
laravel ×1
mysql ×1
proxy ×1
security ×1