diff --git a/views/ip_login.views.inc b/views/ip_login.views.inc
new file mode 100644
index 0000000..55670ae
--- /dev/null
+++ b/views/ip_login.views.inc
@@ -0,0 +1,79 @@
+<?php
+
+/**
+ * Export IP Login data to Views.
+ */
+
+/**
+ * Implements hook_views_data()
+ */
+function ip_login_views_data() {
+  $data = array();
+
+  $data['ip_login_user']['table']['group']  = t('IP Login');
+
+  $data['ip_login_user']['table']['base'] = array(
+    'field' => 'uid',
+    'title' => t('IP Login'),
+    'help' => t('IP Login.'),
+  );
+  
+  // For other base table relationships, explain how we join
+  $data['ip_login_user']['table']['join'] = array(
+    'users' => array(
+      'field' => 'uid',
+      'left_field' => 'uid',
+     ),
+  );
+
+  // Expose the user ID.
+  $data['ip_login_user']['uid'] = array(
+    'title' => t('Uid'),
+    'help' => t("The User ID."),
+    'field' => array(
+      'handler' => 'views_handler_field_user',
+      'click sortable' => TRUE,
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_user_uid',
+      'name field' => 'name', // display this field in the summary
+    ),
+    'filter' => array(
+      'title' => t('Username'),
+      'handler' => 'views_handler_filter_user_name',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'relationship' => array(
+      'title' => t('User'),
+      'help' => t("Relate IP Login to user account"),
+      'handler' => 'views_handler_relationship',
+      'base' => 'users',
+      'base field' => 'uid',
+      'field' => 'uid',
+      'label' => t('User'),
+    ),
+  );
+
+  // Expose the IP address match field.
+  $data['ip_login_user']['ip_match'] = array(
+    'title' => t('IP match(es)', array(), array('context' => 'IP address matches string')),
+    'help' => t('A comma separated string of IP address matches for a user.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => FALSE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+  );
+
+  return $data;
+}
diff --git a/views/ip_login.views_default.inc b/views/ip_login.views_default.inc
new file mode 100644
index 0000000..b89fc52
--- /dev/null
+++ b/views/ip_login.views_default.inc
@@ -0,0 +1,265 @@
+<?php
+
+/**
+ * @file
+ * Default view at Admin > People > IP Login.
+ */
+
+/**
+ * Implements hook_views_default_views().
+ */
+function ip_login_views_default_views() {
+  $views = array();
+
+  $view = new view;
+  $view->name = 'ip_login_users';
+  $view->description = 'IP Login user list';
+  $view->tag = 'default';
+  $view->base_table = 'ip_login_user';
+  $view->human_name = 'IP Login users';
+  $view->core = 7;
+  $view->api_version = '3.0';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+
+  /* Display: Master */
+  $handler = $view->new_display('default', 'Master', 'default');
+  $handler->display->display_options['title'] = 'IP Login';
+  $handler->display->display_options['access']['type'] = 'perm';
+  $handler->display->display_options['access']['perm'] = 'administer users';
+  $handler->display->display_options['cache']['type'] = 'none';
+  $handler->display->display_options['query']['type'] = 'views_query';
+  $handler->display->display_options['query']['options']['query_comment'] = FALSE;
+  $handler->display->display_options['exposed_form']['type'] = 'basic';
+  $handler->display->display_options['exposed_form']['options']['reset_button'] = TRUE;
+  $handler->display->display_options['exposed_form']['options']['autosubmit'] = 0;
+  $handler->display->display_options['exposed_form']['options']['autosubmit_hide'] = 1;
+  $handler->display->display_options['pager']['type'] = 'full';
+  $handler->display->display_options['pager']['options']['items_per_page'] = '20';
+  $handler->display->display_options['pager']['options']['offset'] = '0';
+  $handler->display->display_options['pager']['options']['id'] = '0';
+  $handler->display->display_options['pager']['options']['expose']['items_per_page'] = TRUE;
+  $handler->display->display_options['pager']['options']['expose']['items_per_page_options_all'] = 0;
+  $handler->display->display_options['style_plugin'] = 'table';
+  $handler->display->display_options['style_options']['columns'] = array(
+    'uid' => 'uid',
+    'name' => 'name',
+    'ip_match' => 'ip_match',
+    'access' => 'access',
+    'edit_node' => 'edit_node',
+  );
+  $handler->display->display_options['style_options']['default'] = 'access';
+  $handler->display->display_options['style_options']['info'] = array(
+    'uid' => array(
+      'sortable' => 1,
+      'default_sort_order' => 'asc',
+      'align' => '',
+      'separator' => '',
+      'empty_column' => 0,
+    ),
+    'name' => array(
+      'sortable' => 0,
+      'default_sort_order' => 'asc',
+      'align' => '',
+      'separator' => '',
+      'empty_column' => 0,
+    ),
+    'ip_match' => array(
+      'align' => '',
+      'separator' => '',
+      'empty_column' => 0,
+    ),
+    'access' => array(
+      'sortable' => 1,
+      'default_sort_order' => 'desc',
+      'align' => '',
+      'separator' => '',
+      'empty_column' => 0,
+    ),
+    'edit_node' => array(
+      'align' => '',
+      'separator' => '',
+      'empty_column' => 0,
+    ),
+  );
+  $handler->display->display_options['style_options']['override'] = 1;
+  $handler->display->display_options['style_options']['sticky'] = 0;
+  $handler->display->display_options['style_options']['empty_table'] = 0;
+  /* No results behavior: Global: Text area */
+  $handler->display->display_options['empty']['area']['id'] = 'area';
+  $handler->display->display_options['empty']['area']['table'] = 'views';
+  $handler->display->display_options['empty']['area']['field'] = 'area';
+  $handler->display->display_options['empty']['area']['label'] = 'Empty text';
+  $handler->display->display_options['empty']['area']['empty'] = FALSE;
+  $handler->display->display_options['empty']['area']['content'] = '<b>No users found.</b>
+
+<small>Note: To enable IP Login for a user, <a href="/admin/people/people">edit their user account</a> and set an IP address match.</small>';
+  $handler->display->display_options['empty']['area']['format'] = 'full_html';
+  $handler->display->display_options['empty']['area']['tokenize'] = 0;
+  /* Relationship: IP Login: User */
+  $handler->display->display_options['relationships']['uid']['id'] = 'uid';
+  $handler->display->display_options['relationships']['uid']['table'] = 'ip_login_user';
+  $handler->display->display_options['relationships']['uid']['field'] = 'uid';
+  $handler->display->display_options['relationships']['uid']['required'] = 0;
+  /* Field: IP Login: Uid */
+  $handler->display->display_options['fields']['uid']['id'] = 'uid';
+  $handler->display->display_options['fields']['uid']['table'] = 'ip_login_user';
+  $handler->display->display_options['fields']['uid']['field'] = 'uid';
+  $handler->display->display_options['fields']['uid']['alter']['alter_text'] = 0;
+  $handler->display->display_options['fields']['uid']['alter']['make_link'] = 0;
+  $handler->display->display_options['fields']['uid']['alter']['absolute'] = 0;
+  $handler->display->display_options['fields']['uid']['alter']['external'] = 0;
+  $handler->display->display_options['fields']['uid']['alter']['replace_spaces'] = 0;
+  $handler->display->display_options['fields']['uid']['alter']['trim_whitespace'] = 0;
+  $handler->display->display_options['fields']['uid']['alter']['nl2br'] = 0;
+  $handler->display->display_options['fields']['uid']['alter']['word_boundary'] = 1;
+  $handler->display->display_options['fields']['uid']['alter']['ellipsis'] = 1;
+  $handler->display->display_options['fields']['uid']['alter']['more_link'] = 0;
+  $handler->display->display_options['fields']['uid']['alter']['strip_tags'] = 0;
+  $handler->display->display_options['fields']['uid']['alter']['trim'] = 0;
+  $handler->display->display_options['fields']['uid']['alter']['html'] = 0;
+  $handler->display->display_options['fields']['uid']['element_label_colon'] = 1;
+  $handler->display->display_options['fields']['uid']['element_default_classes'] = 1;
+  $handler->display->display_options['fields']['uid']['hide_empty'] = 0;
+  $handler->display->display_options['fields']['uid']['empty_zero'] = 0;
+  $handler->display->display_options['fields']['uid']['hide_alter_empty'] = 1;
+  $handler->display->display_options['fields']['uid']['link_to_user'] = 0;
+  /* Field: User: Name */
+  $handler->display->display_options['fields']['name']['id'] = 'name';
+  $handler->display->display_options['fields']['name']['table'] = 'users';
+  $handler->display->display_options['fields']['name']['field'] = 'name';
+  $handler->display->display_options['fields']['name']['relationship'] = 'uid';
+  $handler->display->display_options['fields']['name']['label'] = 'Username';
+  $handler->display->display_options['fields']['name']['alter']['alter_text'] = 0;
+  $handler->display->display_options['fields']['name']['alter']['make_link'] = 0;
+  $handler->display->display_options['fields']['name']['alter']['absolute'] = 0;
+  $handler->display->display_options['fields']['name']['alter']['external'] = 0;
+  $handler->display->display_options['fields']['name']['alter']['replace_spaces'] = 0;
+  $handler->display->display_options['fields']['name']['alter']['trim_whitespace'] = 0;
+  $handler->display->display_options['fields']['name']['alter']['nl2br'] = 0;
+  $handler->display->display_options['fields']['name']['alter']['word_boundary'] = 1;
+  $handler->display->display_options['fields']['name']['alter']['ellipsis'] = 1;
+  $handler->display->display_options['fields']['name']['alter']['more_link'] = 0;
+  $handler->display->display_options['fields']['name']['alter']['strip_tags'] = 0;
+  $handler->display->display_options['fields']['name']['alter']['trim'] = 0;
+  $handler->display->display_options['fields']['name']['alter']['html'] = 0;
+  $handler->display->display_options['fields']['name']['element_label_colon'] = 1;
+  $handler->display->display_options['fields']['name']['element_default_classes'] = 1;
+  $handler->display->display_options['fields']['name']['hide_empty'] = 0;
+  $handler->display->display_options['fields']['name']['empty_zero'] = 0;
+  $handler->display->display_options['fields']['name']['hide_alter_empty'] = 1;
+  $handler->display->display_options['fields']['name']['link_to_user'] = 0;
+  $handler->display->display_options['fields']['name']['overwrite_anonymous'] = 0;
+  $handler->display->display_options['fields']['name']['format_username'] = 1;
+  /* Field: IP Login: IP match(es) */
+  $handler->display->display_options['fields']['ip_match']['id'] = 'ip_match';
+  $handler->display->display_options['fields']['ip_match']['table'] = 'ip_login_user';
+  $handler->display->display_options['fields']['ip_match']['field'] = 'ip_match';
+  $handler->display->display_options['fields']['ip_match']['alter']['alter_text'] = 0;
+  $handler->display->display_options['fields']['ip_match']['alter']['make_link'] = 0;
+  $handler->display->display_options['fields']['ip_match']['alter']['absolute'] = 0;
+  $handler->display->display_options['fields']['ip_match']['alter']['external'] = 0;
+  $handler->display->display_options['fields']['ip_match']['alter']['replace_spaces'] = 0;
+  $handler->display->display_options['fields']['ip_match']['alter']['trim_whitespace'] = 0;
+  $handler->display->display_options['fields']['ip_match']['alter']['nl2br'] = 0;
+  $handler->display->display_options['fields']['ip_match']['alter']['word_boundary'] = 1;
+  $handler->display->display_options['fields']['ip_match']['alter']['ellipsis'] = 1;
+  $handler->display->display_options['fields']['ip_match']['alter']['more_link'] = 0;
+  $handler->display->display_options['fields']['ip_match']['alter']['strip_tags'] = 0;
+  $handler->display->display_options['fields']['ip_match']['alter']['trim'] = 0;
+  $handler->display->display_options['fields']['ip_match']['alter']['html'] = 0;
+  $handler->display->display_options['fields']['ip_match']['element_label_colon'] = 1;
+  $handler->display->display_options['fields']['ip_match']['element_default_classes'] = 1;
+  $handler->display->display_options['fields']['ip_match']['hide_empty'] = 0;
+  $handler->display->display_options['fields']['ip_match']['empty_zero'] = 0;
+  $handler->display->display_options['fields']['ip_match']['hide_alter_empty'] = 1;
+  /* Field: User: Last access */
+  $handler->display->display_options['fields']['access']['id'] = 'access';
+  $handler->display->display_options['fields']['access']['table'] = 'users';
+  $handler->display->display_options['fields']['access']['field'] = 'access';
+  $handler->display->display_options['fields']['access']['relationship'] = 'uid';
+  $handler->display->display_options['fields']['access']['alter']['alter_text'] = 0;
+  $handler->display->display_options['fields']['access']['alter']['make_link'] = 0;
+  $handler->display->display_options['fields']['access']['alter']['absolute'] = 0;
+  $handler->display->display_options['fields']['access']['alter']['external'] = 0;
+  $handler->display->display_options['fields']['access']['alter']['replace_spaces'] = 0;
+  $handler->display->display_options['fields']['access']['alter']['trim_whitespace'] = 0;
+  $handler->display->display_options['fields']['access']['alter']['nl2br'] = 0;
+  $handler->display->display_options['fields']['access']['alter']['word_boundary'] = 1;
+  $handler->display->display_options['fields']['access']['alter']['ellipsis'] = 1;
+  $handler->display->display_options['fields']['access']['alter']['more_link'] = 0;
+  $handler->display->display_options['fields']['access']['alter']['strip_tags'] = 0;
+  $handler->display->display_options['fields']['access']['alter']['trim'] = 0;
+  $handler->display->display_options['fields']['access']['alter']['html'] = 0;
+  $handler->display->display_options['fields']['access']['element_label_colon'] = 1;
+  $handler->display->display_options['fields']['access']['element_default_classes'] = 1;
+  $handler->display->display_options['fields']['access']['hide_empty'] = 0;
+  $handler->display->display_options['fields']['access']['empty_zero'] = 0;
+  $handler->display->display_options['fields']['access']['hide_alter_empty'] = 1;
+  $handler->display->display_options['fields']['access']['date_format'] = 'time ago';
+  /* Field: User: Edit link */
+  $handler->display->display_options['fields']['edit_node']['id'] = 'edit_node';
+  $handler->display->display_options['fields']['edit_node']['table'] = 'users';
+  $handler->display->display_options['fields']['edit_node']['field'] = 'edit_node';
+  $handler->display->display_options['fields']['edit_node']['relationship'] = 'uid';
+  $handler->display->display_options['fields']['edit_node']['label'] = 'Edit';
+  $handler->display->display_options['fields']['edit_node']['alter']['alter_text'] = 0;
+  $handler->display->display_options['fields']['edit_node']['alter']['make_link'] = 0;
+  $handler->display->display_options['fields']['edit_node']['alter']['absolute'] = 0;
+  $handler->display->display_options['fields']['edit_node']['alter']['external'] = 0;
+  $handler->display->display_options['fields']['edit_node']['alter']['replace_spaces'] = 0;
+  $handler->display->display_options['fields']['edit_node']['alter']['trim_whitespace'] = 0;
+  $handler->display->display_options['fields']['edit_node']['alter']['nl2br'] = 0;
+  $handler->display->display_options['fields']['edit_node']['alter']['word_boundary'] = 1;
+  $handler->display->display_options['fields']['edit_node']['alter']['ellipsis'] = 1;
+  $handler->display->display_options['fields']['edit_node']['alter']['more_link'] = 0;
+  $handler->display->display_options['fields']['edit_node']['alter']['strip_tags'] = 0;
+  $handler->display->display_options['fields']['edit_node']['alter']['trim'] = 0;
+  $handler->display->display_options['fields']['edit_node']['alter']['html'] = 0;
+  $handler->display->display_options['fields']['edit_node']['element_label_colon'] = 1;
+  $handler->display->display_options['fields']['edit_node']['element_default_classes'] = 1;
+  $handler->display->display_options['fields']['edit_node']['hide_empty'] = 0;
+  $handler->display->display_options['fields']['edit_node']['empty_zero'] = 0;
+  $handler->display->display_options['fields']['edit_node']['hide_alter_empty'] = 1;
+  $handler->display->display_options['fields']['edit_node']['text'] = 'edit';
+  /* Filter criterion: IP Login: Username */
+  $handler->display->display_options['filters']['uid']['id'] = 'uid';
+  $handler->display->display_options['filters']['uid']['table'] = 'ip_login_user';
+  $handler->display->display_options['filters']['uid']['field'] = 'uid';
+  $handler->display->display_options['filters']['uid']['value'] = '';
+  $handler->display->display_options['filters']['uid']['group'] = 1;
+  $handler->display->display_options['filters']['uid']['exposed'] = TRUE;
+  $handler->display->display_options['filters']['uid']['expose']['operator_id'] = 'uid_op';
+  $handler->display->display_options['filters']['uid']['expose']['label'] = 'Username';
+  $handler->display->display_options['filters']['uid']['expose']['operator'] = 'uid_op';
+  $handler->display->display_options['filters']['uid']['expose']['identifier'] = 'uid';
+  $handler->display->display_options['filters']['uid']['expose']['multiple'] = FALSE;
+  $handler->display->display_options['filters']['uid']['expose']['reduce'] = 0;
+  /* Filter criterion: IP Login: IP match(es) */
+  $handler->display->display_options['filters']['ip_match']['id'] = 'ip_match';
+  $handler->display->display_options['filters']['ip_match']['table'] = 'ip_login_user';
+  $handler->display->display_options['filters']['ip_match']['field'] = 'ip_match';
+  $handler->display->display_options['filters']['ip_match']['operator'] = 'contains';
+  $handler->display->display_options['filters']['ip_match']['group'] = 1;
+  $handler->display->display_options['filters']['ip_match']['exposed'] = TRUE;
+  $handler->display->display_options['filters']['ip_match']['expose']['operator_id'] = 'ip_match_op';
+  $handler->display->display_options['filters']['ip_match']['expose']['label'] = 'IP match(es)';
+  $handler->display->display_options['filters']['ip_match']['expose']['use_operator'] = 1;
+  $handler->display->display_options['filters']['ip_match']['expose']['operator'] = 'ip_match_op';
+  $handler->display->display_options['filters']['ip_match']['expose']['identifier'] = 'ip_match';
+  $handler->display->display_options['filters']['ip_match']['expose']['required'] = 0;
+  $handler->display->display_options['filters']['ip_match']['expose']['multiple'] = FALSE;
+
+  /* Display: Page */
+  $handler = $view->new_display('page', 'Page', 'page');
+  $handler->display->display_options['path'] = 'admin/people/ip-login';
+  $handler->display->display_options['menu']['type'] = 'tab';
+  $handler->display->display_options['menu']['title'] = 'IP Login';
+  $handler->display->display_options['menu']['description'] = 'IP Login user list';
+  $handler->display->display_options['menu']['weight'] = '10';
+  $handler->display->display_options['menu']['name'] = 'management';
+  $handler->display->display_options['menu']['context'] = 0;
+  $handler->display->display_options['tab_options']['weight'] = '0';
+  $views['ip_login_users'] = $view;
+
+  return $views;
+}
