How to Use the ipconfig Command in macOS Terminal to Inspect DHCP Packets and Network Leases

While Windows users utilize ipconfig as their primary networking tool, the macOS implementation of ipconfig is a specialized BSD command-line utility designed specifically to interface with the Darwin IP configuration daemon (configd). Instead of merely listing IP addresses, the macOS ipconfig tool allows network administrators to decode raw DHCP options packets, query lease expiration timestamps, force DHCP renewals, and troubleshoot captive portal assignments directly in Terminal.

How ipconfig Operates on macOS

On macOS, general network adapter configuration is managed by ifconfig and networksetup. The ipconfig command focuses exclusively on managing Dynamic Host Configuration Protocol (DHCP) and BootP transactions for network interfaces (such as Wi-Fi on en0 or Ethernet on en1). It queries internal framework caches to inspect vendor-specific DHCP options that standard network utilities cannot display.

Syntax and Key Parameters

ipconfig <command> [interface] [parameters]
  • getifaddr <interface>: Returns the active IPv4 address assigned to the interface.
  • getpacket <interface>: Decodes and prints the entire raw DHCP ACK packet received from the DHCP server.
  • getoption <interface> <opt_name | opt_code>: Extracts a specific DHCP option value (e.g. router, domain_name_server, or lease_time).
  • set <interface> DHCP: Re-initializes DHCP negotiation on the target interface.
  • waitall: Blocks until all pending network configuration services have completed initialization.

Step-by-Step Practical Implementation

Step 1: Identify Your Active Network Interface

  1. Open Terminal from /Applications/Utilities/.
  2. Identify which physical interface is active (typically en0 for Wi-Fi on MacBook laptops):
    route get default | grep interface
  3. Output will confirm the primary device (e.g. interface: en0).

Step 2: Quickly Print Your Local IP Address

To output your clean, unformatted local IPv4 address without parsing through multiline ifconfig text:

ipconfig getifaddr en0

Returns: 192.168.1.120.

Step 3: Decode the Raw DHCP Lease Packet

To inspect exactly what configuration options your router or enterprise DHCP server dispatched:

ipconfig getpacket en0

Terminal outputs the parsed DHCP ACK packet structure:

op = BOOTREPLY
htype = 1
flags = 0
ciaddr = 0.0.0.0
yiaddr = 192.168.1.120
siaddr = 192.168.1.1
chaddr = 3c:22:fb:1a:2b:3c
sname = 
file = 
options:
  Options count is 11
  dhcp_message_type (uint8): ACK 0x5
  server_identifier (ip): 192.168.1.1
  lease_time (uint32): 86400
  subnet_mask (ip): 255.255.255.0
  router (ip_mult): {192.168.1.1}
  domain_name_server (ip_mult): {1.1.1.1, 1.0.0.1}
  domain_name (string): lan

Step 4: Querying Specific DHCP Options

To isolate individual parameters (such as lease duration in seconds or default gateway):

ipconfig getoption en0 lease_time

Output: 86400 (indicates a 24-hour lease window).

Step 5: Re-negotiating a DHCP Lease via CLI

To release and renew your IP configuration without toggling Wi-Fi off and on:

sudo ipconfig set en0 DHCP

Key DHCP Packet Options Decoded by ipconfig

Option Identifier Option Code Data Type Operational Role
dhcp_message_type 53 uint8 Indicates transaction state (ACK, NAK, OFFER, DISCOVER)
server_identifier 54 IPv4 Address IP address of the authoritative DHCP server issuing the lease
lease_time 51 uint32 (Seconds) Total validity window of the dynamic IP allocation
renewal_t1_time_value 58 uint32 (Seconds) Timer when client begins unicast renewal requests (typically 50% of lease)
rebinding_t2_time_value 59 uint32 (Seconds) Timer when client broadcasts for any DHCP server (typically 87.5% of lease)
router 3 IPv4 List Default network gateway IP addresses

Troubleshooting Common Issues

  • Blank Output on getpacket: If ipconfig getpacket en0 returns nothing, your Mac is configured with a Static IP address, an ad-hoc link-local address (169.254.x.x), or DHCP has not yet completed its initial four-way handshake.
  • Static IP Override: To assign a static IP address using ipconfig directly: sudo ipconfig set en0 INFORM 192.168.1.200 255.255.255.0.
  • Multi-Adapter Clashes: If both Wi-Fi (en0) and USB-C Ethernet (en5) are connected, make sure to query the active routing adapter identified in Step 1.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.