Beginner's Guide for WordPress / Start your WordPress Blog in minutes

How to Display a User’s IP Address in WordPress

Recently one of our users asked us if it was possible to detect and display individual visitors’ IP address in WordPress. Our answer was of course it is. In this article, we will show you how to display user’s IP address in WordPress.

You can use this to create your own IP detection site. This way when a website visitor views your site, they can see their own IP address.

All you have to do is paste the following snippet in your theme’s functions.php file or in a site-specific plugin.

// Display User IP in WordPress


function get_the_user_ip() {
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 apply_filters( 'wpb_get_ip', $ip );
}

add_shortcode('show_ip', 'get_the_user_ip');

Next thing you need to do is add the following shortcode in your post, page, or in a sidebar widget.

[show_ip]

If you’re using the shortcode in your sidebar text widget, and it is not working, then you need to make sure that you enable shortcode for sidebar widgets.

We hope this article helped you display user’s IP address in your WordPress site. If you have any questions or feedback, then please leave us a comment below.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit – a collection of WordPress related products and resources that every professional should have!

Reader Interactions

24 CommentsLeave a Reply

    • That would require some advanced php or a plugin, we don’t have a recommended method at the moment.

      Admin

  1. unfortunately there is still a weakness of the function, that is the problem of “cache”.
    visitors will see the same ip address (even if the router is restarted) when they are not clearing “cache” in the browser.

  2. Where can I see the IP’s collected? and should I paste the snippet of the code on the top of my function.php code?

  3. hey,
    I am from Germany and I am not a computer freak. But I have the job to find out of the client IP (out of Google Analytics) the Company of the visiter. Can you help me?

  4. This works great, thank you! Is there any way to have it also display the hostname, perhaps with a separate shortcode?

  5. Hi,

    Is it possible to obtain the IP of a previous blog visitor trough this method? If not are you aware of any other courses of action I can take?

    Also will I be able to access code if I do not have a premium wordpress account?
    I have been trying to locate the IP of an anonymous twitter troll and would really appreciate some help! :)

    Reuben

  6. Thanks for the tutorial. Please excuse if this is a dumb question but I’m new to working with WordPress.

    If I want to store the visitors IP address along with the date and time they visited a post, should I create a separate mysql database table or is there an existing wp table that collects this information that I can retrieve?

    • WordPress only stores vistor’s information in the database if they decide to leave a comment. You can create a separate database to collect this information if you want.

      Admin

    • Creating a table for such functionality in WordPress is not an efficient move. I would prefer to do this using custom post type.

      I have answered a similar question over here;

  7. Thanks for reply, I’ll modify some plugin for some system, I’ll describe it later

  8. @pippin you are correct. Your code worked fine, but wpbeginner’s code was also working fine.

  9. It should probably be noted that $_SERVER[‘REMOTE_ADDR’] will not always retrieve the IP properly.

    If the user is on a shared connection, you will need to use $_SERVER[‘HTTP_X_FORWARDED_FOR’].

    If the user is behind a proxy, you will need to use $_SERVER[‘HTTP_X_FORWARDED_FOR’].

    The IP can also be present in $_SERVER[‘HTTP_CLIENT_IP’].

    To properly get the IP reliably, something like this should be used:

    function get_the_user_ip() {
    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 apply_filters( ‘edd_get_ip’, $ip );
    }

  10. Always worth noting that although you can read the IP address with PHP that it may not be useful because people have shared IP addresses, dynamic IP, access websites from different networks/locations and because it is possible to fake the IP address that PHP sees. So – only use an IP address with caution.

Leave A Reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.