Skip to main content

ConnInfo Helper

ConnInfo Helper

The ConnInfo Helper helps you to get the connection information. For example, you can get the client's remote address easily.

Import

The adapter for each runtime is a separate package (@hono/cloudflare-workers, @hono/deno, @hono/bun, ...). Install the one for your runtime.

import { Hono } from 'hono'
import { getConnInfo } from '@hono/cloudflare-workers'
import { Hono } from 'hono'
import { getConnInfo } from '@hono/deno'
import { Hono } from 'hono'
import { getConnInfo } from '@hono/bun'
import { Hono } from 'hono'
import { getConnInfo } from '@hono/vercel'
import { Hono } from 'hono'
import { getConnInfo } from '@hono/aws-lambda'
import { Hono } from 'hono'
import { getConnInfo } from '@hono/netlify'
import { Hono } from 'hono'
import { getConnInfo } from '@hono/lambda-edge'
import { Hono } from 'hono'
import { getConnInfo } from '@hono/node-server/conninfo'

Usage

const app = new Hono()

app.get('/', (c) => {
  const info = getConnInfo(c) // info is `ConnInfo`
  return c.text(`Your remote address is ${info.remote.address}`)
})

Type Definitions

The type definitions of the values that you can get from getConnInfo() are the following:

type AddressType = 'IPv6' | 'IPv4' | undefined

type NetAddrInfo = {
  /**
   * Transport protocol type
   */
  transport?: 'tcp' | 'udp'
  /**
   * Transport port number
   */
  port?: number

  address?: string
  addressType?: AddressType
} & (
  | {
      /**
       * Host name such as IP Addr
       */
      address: string

      /**
       * Host name type
       */
      addressType: AddressType
    }
  | {}
)

/**
 * HTTP Connection information
 */
interface ConnInfo {
  /**
   * Remote information
   */
  remote: NetAddrInfo
}