Skip to content

Latest commit

 

History

History
62 lines (47 loc) · 1.99 KB

README_ZH.md

File metadata and controls

62 lines (47 loc) · 1.99 KB
语言: 中文 English

一个轻量、小巧的Node.js模块,用于检索请求用户的IP地址

Version dev MIT License

安装

npm install get-user-ip --save

快速开始

const GetUserIP = require('get-user-ip')
const http = require('http')

const server = http.createServer((req,res)=>{
  res.end(GetUserIP(req))
})

server.listen(6870)

// 如果你使用IPv4,在localhost上你会看到127.0.0.1
// 如果你使用的是IPv6,则为::1, ::fffff:127.0.0.1

如果有一些特殊情况的话,例如使用了CloudFlare就可以追加第二个参数,它是一个数组所以可以包含多个

const server = http.createServer((req,res)=>{
  // 这时优先获取 headers.cf-connecting-ip ,如果不存在则继续按默认参数执行
  res.end(GetUserIP(req,['headers.cf-connecting-ip']))
})

它是如何工作的

它在请求中寻找特定的头信息,如果不存在,则返回0.0.0.0默认值

用户 IP 是由以下顺序决定的

const defaultHeaders = [
  'headers.x-client-ip',
  'headers.x-real-ip',
  'headers.x-forwarded-for', // 该头信息会返回多个IP,格式为: (客户IP, 代理1 IP,代理2 IP...) 所以返回第一个
  'connection.remoteAddress',
  'socket.remoteAddress',
  'connection.socket.remoteAddress'
]