onlineIPMonitor.blade.php 4.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. @extends('admin.layouts')
  2. @section('css')
  3. <link href="/assets/global/vendor/bootstrap-table/bootstrap-table.min.css" rel="stylesheet">
  4. @endsection
  5. @section('content')
  6. <div class="page-content container-fluid">
  7. <div class="panel">
  8. <div class="panel-heading">
  9. <h3 class="panel-title">在线IP监控
  10. <small>2分钟内的实时数据</small>
  11. </h3>
  12. </div>
  13. <div class="panel-body">
  14. <form class="form-row">
  15. <div class="form-group col-lg-2 col-sm-2">
  16. <input type="number" class="form-control" name="id" value="{{Request::query('id')}}" placeholder="用户ID"/>
  17. </div>
  18. <div class="form-group col-lg-2 col-sm-5">
  19. <input type="text" class="form-control" name="username" value="{{Request::query('username')}}" placeholder="用户账号"/>
  20. </div>
  21. <div class="form-group col-lg-2 col-sm-5">
  22. <input type="text" class="form-control" name="ip" value="{{Request::query('ip')}}" placeholder="IP"/>
  23. </div>
  24. <div class="form-group col-lg-2 col-sm-3">
  25. <input type="number" class="form-control" name="port" value="{{Request::query('port')}}" placeholder="端口"/>
  26. </div>
  27. <div class="form-group col-lg-2 col-sm-5">
  28. <select name="node_id" id="node_id" class="form-control" onchange="this.form.submit()">
  29. <option value="" hidden>选择节点</option>
  30. @foreach($nodes as $node)
  31. <option value="{{$node->id}}">{{$node->name}}</option>
  32. @endforeach
  33. </select>
  34. </div>
  35. <div class="form-group col-lg-2 col-sm-4 btn-group">
  36. <button type="submit" class="btn btn-primary">搜 索</button>
  37. <a href="{{route('admin.log.online')}}" class="btn btn-danger">{{trans('common.reset')}}</a>
  38. </div>
  39. </form>
  40. <table class="text-md-center" data-toggle="table" data-mobile-responsive="true">
  41. <thead class="thead-default">
  42. <tr>
  43. <th> #</th>
  44. <th> 类型</th>
  45. <th> 节点</th>
  46. <th> 用户</th>
  47. <th> IP</th>
  48. <th> 归属地</th>
  49. <th> 时间</th>
  50. </tr>
  51. </thead>
  52. <tbody>
  53. @foreach($onlineIPLogs as $log)
  54. <tr>
  55. <td>{{$log->id}}</td>
  56. <td>{{$log->type}}</td>
  57. <td>{{$log->node->name ?? '【节点已删除】'}}</td>
  58. <td>{{$log->user->username ?? '【用户已删除】'}}</td>
  59. <td>
  60. @if (strpos($log->ip, ',') !== false)
  61. @foreach (explode(',', $log->ip) as $ip)
  62. <a href="https://www.ipip.net/ip/{{$ip}}.html" target="_blank">{{$ip}}</a>
  63. @endforeach
  64. @else
  65. <a href="https://www.ipip.net/ip/{{$log->ip}}.html" target="_blank">{{$log->ip}}</a>
  66. @endif
  67. </td>
  68. <td>{{strpos($log->ip, ',') !== false? '':$log->ipInfo}}</td>
  69. <td>{{date('Y-m-d H:i:s',$log->created_at)}}</td>
  70. </tr>
  71. @endforeach
  72. </tbody>
  73. </table>
  74. </div>
  75. <div class="panel-footer">
  76. <div class="row">
  77. <div class="col-sm-4">
  78. 共 <code>{{$onlineIPLogs->total()}}</code> 个账号
  79. </div>
  80. <div class="col-sm-8">
  81. <nav class="Page navigation float-right">
  82. {{$onlineIPLogs->links()}}
  83. </nav>
  84. </div>
  85. </div>
  86. </div>
  87. </div>
  88. </div>
  89. @endsection
  90. @section('javascript')
  91. <script src="/assets/global/vendor/bootstrap-table/bootstrap-table.min.js"></script>
  92. <script src="/assets/global/vendor/bootstrap-table/extensions/mobile/bootstrap-table-mobile.min.js"></script>
  93. <script>
  94. $(document).ready(function() {
  95. $('#node_id').val({{Request::query('node_id')}});
  96. });
  97. </script>
  98. @endsection