从Javascript中获取访问者IP,然后将其用作php变量

Get Visitor IP from Javascript and Then using it as a php variable

本文关键字:变量 php 然后 Javascript 获取 访问者 IP      更新时间:2023-09-26

你好,我正在开发一个联系形式,这将给用户ip和地理位置详细信息,而他们从我的网站向我发送消息,但是php代码$ip = $_SERVER['REMOTE_ADDR'];没有显示实际的访问者ip,我试过许多php函数在其他主机工作正常,但在我的主机不正确显示客户端ip所以我决定得到ip使用JavaScript,然后当我的游客将sent.php提交联系人表单页面的ip我从JavaScript将输入形式从它然后我可以得到那个职位价值过程变量和获得的地理位置和其他信息和发送它在php邮件。

下面是获取实际用户ip的javascript代码
    <script type="application/javascript">
      function getIP(json) {
        document.write("My public IP address is: ", json.ip);
      }
    </script>
<script type="application/javascript" src="https://api.ipify.org?format=jsonp&callback=getIP">
</script>

我的电子邮件联系方式是

    <form name="contact" class="select-style" action="sent.php" method="POST" >
            <p>Hello

            <select name="recipient">
            <option value="recipient_0" selected>Please Select Recipient !</option>             
                    <option value="recipient_1">Sales</option>
                    <option value="recipient_2">Support</option>
                </select>           
            </p>
            <label for="email">Your Message : </label>
            <textarea  name="message" value="Your Message" id="message" ></textarea>
            <p>Regards,</p> 
            <label for="name">Name: </label>
            <input type="text" name="name" value="" id="name" />
            <label for="email">Email: </label>
            <input type="text" name="email" value="" id="email" />
            <input type="hidden" name="ip" value="">
            <input type="submit" name ="submit" value="OK I want to send it now, thanks!" />
        </form>

我想这就是我应该用

的形式输入ip的方式
<script type="text/javascript">
    jsvar= json.ip;
    document.contact.ip.value = jsvar;
</script>

但是它没有给出我想要的结果。请帮助。

已解决。

我只需要在<from>

的隐藏输入后插入这些JavaScript代码
    <input type="hidden" name="ip" value="" id="ip" />

 <script type="text/javascript">
  var userip;
</script>
<script type="text/javascript" src="https://l2.io/ip.js?var=userip"></script>

                <script type="text/javascript"> 
  document.getElementById("ip").setAttribute('value', userip);
</script>