diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml
index 6ef8fda62fe..7ea59463463 100644
--- a/config/locales/client.en.yml
+++ b/config/locales/client.en.yml
@@ -577,7 +577,7 @@ en:
     created_lowercase: 'created'
     trust_level: 'Trust Level'
     search_hint: 'username'
-    search_hint_admin: 'username or email'
+    search_hint_admin: 'username, email or IP address'
 
     create_account:
       title: "Create New Account"
diff --git a/lib/admin_user_index_query.rb b/lib/admin_user_index_query.rb
index fa468c96028..6e2e277b5ad 100644
--- a/lib/admin_user_index_query.rb
+++ b/lib/admin_user_index_query.rb
@@ -37,7 +37,11 @@ class AdminUserIndexQuery
   def filter_by_search
     if params[:filter].present?
       if params[:admin] == true
-        @query.where('username_lower ILIKE :filter OR email ILIKE :filter', filter: "%#{params[:filter]}%")
+        if params[:filter] =~ Resolv::IPv4::Regex || params[:filter] =~ Resolv::IPv6::Regex
+          @query.where('ip_address = :ip OR registration_ip_address = :ip', ip: params[:filter])
+        else
+          @query.where('username_lower ILIKE :filter OR email ILIKE :filter', filter: "%#{params[:filter]}%")
+        end
       else
         @query.where('username_lower ILIKE :filter', filter: "%#{params[:filter]}%")
       end
diff --git a/spec/components/admin_user_index_query_spec.rb b/spec/components/admin_user_index_query_spec.rb
index 0947f2a5e7f..d6d5e2ea3e8 100644
--- a/spec/components/admin_user_index_query_spec.rb
+++ b/spec/components/admin_user_index_query_spec.rb
@@ -29,7 +29,6 @@ describe AdminUserIndexQuery do
 
   end
 
-
   describe "users with trust level" do
 
     TrustLevel.levels.each do |key, value|
@@ -138,5 +137,24 @@ describe AdminUserIndexQuery do
       end
     end
 
+    context "by ip address fragment" do
+      before(:each) { Fabricate(:user, ip_address: "117.207.94.9") }
+
+      context "when authenticated as a non-admin user" do
+        it "doesn't match the ip address" do
+          query = ::AdminUserIndexQuery.new({ filter: "117.207.94.9" })
+          expect(query.find_users.count()).to eq(0)
+        end
+      end
+
+      context "when authenticated as an admin user" do
+        it "matches the ip address" do
+          query = ::AdminUserIndexQuery.new({ filter: "117.207.94.9", admin: true })
+          expect(query.find_users.count()).to eq(1)
+        end
+      end
+
+    end
+
   end
 end