I have a form to add a comment, everything works fine, except for getting the ip who sent the comment
Here is my controller
public function sendComment(Request $request)
{
$articleComment = new ArticleComment;
$articleComment->name = $request->get('name');
$articleComment->email = $request->get('email');
$articleComment->text = $request->get('text');
$article = Article::find($request->get('article_id'));
$articleComment->user_ip = $request->ip();
$article->article_comments()->save($articleComment);
return back();
}
To get ip, I use$request->ip()
but in the end this value comes to my field"user_ip": "::1"
Maybe this is because I am testing everything on a local server, or what is the problem?
Your code is correct if you want to store the IP address from the Request object.
You are getting::1
as this the IPv6 address for your local machine. The request is coming from your own computer to the laravel app on your own computer therefore the IP is reported a localhost.
If you were running the Laravel app from the internet and sending the request that way, your own public facing IP would be stored properly with your existing code. This could be stored in IPv4 or IPv6 format depending on what your internet service provider is using.
It is suggested that to support storing both IPv6 (new style) IP addresses and IPv4 (old style) your database field should have a length of 45 characters.
first check yourIlluminate\Http\request.php
file in line296(public function ip()
it's most be just return$this->getClientIp();
anything else is false, if is trye and didnot work, you have tow other ways to get the request ip:
public function index(Request $request){
return $request->getClientIp();
}
public function index(Request $request){
return $request->server->get('REMOTE_ADDR');
}
Our community is visited by hundreds of web development professionals every day. Ask your question and get a quick answer for free.
Find the answer in similar questions on our website.
Do you know the answer to this question? Write a quick response to it. With your help, we will make our community stronger.
PHP (from the English Hypertext Preprocessor - hypertext preprocessor) is a scripting programming language for developing web applications. Supported by most hosting providers, it is one of the most popular tools for creating dynamic websites.
The PHP scripting language has gained wide popularity due to its processing speed, simplicity, cross-platform, functionality and distribution of source codes under its own license.
https://www.php.net/
Laravel is a free open source PHP framework that came out in 2011. Since then, it has been able to become the framework of choice for web developers. One of the main reasons for this is that Laravel makes it easier, faster, and safer to develop complex web applications than any other framework.
https://laravel.com/
Welcome to the Q&A site for web developers. Here you can ask a question about the problem you are facing and get answers from other experts. We have created a user-friendly interface so that you can quickly and free of charge ask a question about a web programming problem. We also invite other experts to join our community and help other members who ask questions. In addition, you can use our search for questions with a solution.
Ask about the real problem you are facing. Describe in detail what you are doing and what you want to achieve.
Our goal is to create a strong community in which everyone will support each other. If you find a question and know the answer to it, help others with your knowledge.