비슷한 뜻에 대해서는 인터넷 프로토콜 문서를 참고하십시오.

**IP 주소**(영어: Internet Protocol address, IP address, 표준어: 인터넷규약주소)는 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 특수한 번호이다. 만약 서버가 들어가지 않으면 IP가 안전하지 않다고 한다. 네트워크에 연결된 장치가 라우터이든 일반 서버이든, 모든 기계는 이 특수한 번호를 가지고 있어야 한다. 이 번호를 이용하여 발신자를 대신하여 메시지가 전송되고 수신자를 향하여 예정된 목적지로 전달된다. IP 주소를 줄여서 **IP**라고 부르기도 하나 IP는 인터넷 규약 자체를 가리키는 말이기 때문에 엄밀하게는 구별해야 한다. IP 와 IP 주소는 다른 개념이다.

IP 주소는 5036이나 5047, 인터넷에서만 사용되는 전화번호라고 생각할 수 있다. 한편, 이런 번호는 사람이 외우기 어렵기 때문에, 전화번호부와 같은 역할을 하는 서비스가 필요하다. DNS가 이런 역할을 하며 이런 서비스를 "도메인 이름 분석" (domain name resolution) 혹은 "이름 분석" (name resolution)이라고 한다.

오늘날 주로 사용되고 있는 IP 주소는 IP 버전 4(IPv4) 주소이나 이 주소가 부족해짐에 따라 길이를 늘린 IP 버전 6(IPv6) 주소가 점점 널리 사용되는 추세이다. 수사를 할 때도 IP 추적을 자주 한다.

IP 할당
-----

고정된 IP 주소를 할당받아 사용하는 방법 이외에도 DHCP를 이용하여 동적으로 IP 주소를 할당받는 방법도 있다.

IP version 4 주소
---------------

 이 부분의 본문은 IPv4입니다.
IP version 4 주소, 줄여서 IPv4 주소는 오늘날 일반적으로 사용하는 IP 주소이다. 이 주소의 범위는 32비트로 보통 0~255 사이의 십진수 넷을 쓰고 .으로 구분하여 나타낸다. 따라서 0.0.0.0부터 255.255.255.255까지가 된다. 이론적으로 42억9496만7296개의 IP가 존재한다. 중간의 일부 번호들은 특별한 용도를 위해 예약되어 있다. 이를테면 127.0.0.1은 localhost(로컬 호스트)로 자기 자신을 가리킨다. (사실 127로 시작하는 모든 IPv4 주소가 마찬가지다)

IP version 6 주소
---------------

 이 부분의 본문은 IPv6입니다.
모든 단말에 주소를 부여하기에 32비트로는 부족해짐에 따라 IP의 새로운 버전인 버전 6에서는 주소 길이를 128비트로 늘렸다. IPv6 주소는 보통 두 자리 16진수 여덟 개를 쓰고 각각을 : 기호로 구분한다.

할당된 IP 주소
---------

 
IP 주소는 호스트에 동적으로 네트워크에 가입되는 경우에도 할당되거나 호스트 하드웨어 또는 소프트웨어의 설정으로 지속적으로 할당된다. 지속적인 설정은 **고정 IP 주소**를 사용하는 것으로 알려져 있다. 반면에 컴퓨터의 IP 주소가 재시작할 때마다 할당되는 경우, 이를 **동적 IP 주소**를 사용하는 것으로 알려져 있다.

동적 IP 주소는 동적 호스트 구성 프로토콜(Dynamic Host Configuration Protocol, DHCP)을 사용하여 네트워크에 할당된다. DHCP는 IP 주소를 할당하는 가장 빈번하게 사용되는 기술이다. 이는 네트워크의 각 기기에 특정 정적 주소를 지정하는 관리적 부담을 피할 수 있도록 해주며, 특정 시간에만 일부 기기가 온라인 상태인 경우 네트워크의 한정된 주소 공간을 기기들이 공유할 수 있도록 한다. 일반적으로 현대적인 데스크톱 운영 체제에서는 동적 IP 구성이 기본적으로 활성화되어 있다.

DHCP로 할당된 주소는 *리스*와 일반적으로 만료 기간이 있다. 호스트가 만료 전에 재갱신하지 않으면 해당 주소는 다른 기기에 할당될 수 있다. 일부 DHCP 구현은 호스트의 MAC 주소를 기반으로 동일한 IP 주소를 매번 다시 할당하려고 시도한다. 네트워크 관리자는 MAC 주소를 기반으로 특정 IP 주소를 할당하도록 DHCP를 구성할 수 있다.

DHCP는 동적으로 IP 주소를 할당하는 데 사용되는 유일한 기술은 아니다. 부트스트랩 프로토콜(Bootstrap Protocol)은 DHCP의 유사한 프로토콜로서 DHCP의 전신이다. 다이얼업과 일부 광대역는 점대점 프로토콜의 동적 주소 기능을 사용한다.

네트워크 인프라에 사용되는 컴퓨터와 장비, 예를 들어 라우터와 메일 서버는 일반적으로 고정 주소를 구성한다.

고정 또는 동적 주소 구성이 없거나 실패하는 경우 운영 체제는 호스트에게 상태 없이 주소를 자동으로 할당하는 링크 로컬 주소를 할당할 수 있다.

### 스티키 동적 IP 주소

*스티키(Sticky)*는 자주 변경되지 않는 동적으로 할당된 IP 주소를 묘사하는 비공식적인 용어이다. 예를 들어 IPv4 주소는 일반적으로 DHCP를 사용하여 할당되며, DHCP 서비스는 클라이언트가 할당을 요청할 때마다 동일한 주소를 할당하는 가능성을 최대화하는 규칙을 사용할 수 있다. IPv6에서는 접두어 위임이 유사한 방식으로 처리될 수 있으며, 변경이 최소한으로 발생하도록 할 수 있다. 일반적인 가정 또는 소규모 사무실 설정에서 하나의 라우터만 [인터넷 서비스 공급자]에게 표시되며, ISP는 최대한 안정적인 구성을 제공하기 위해 *스티키(Sticky)* 구성을 시도할 수 있다. 가정이나 사업장의 로컬 네트워크에서는 로컬 DHCP 서버가 IPv4 구성을 스티키하게 제공하도록 설계될 수 있으며, ISP는 클라이언트가 스티키 IPv6 주소를 사용하도록 할당할 수 있다. *스티키(Sticky)*는 *정적(Static)*과 혼동되어서는 안 된다. 스티키 구성은 안정성이 보장되지 않지만, 정적 구성은 영구적으로 사용되며 의도적으로만 변경된다.

### 주소 자동 구성

IPv4 네트워크에 대한 링크 로컬 주소를 위해 주소 블록 169.254.0.0/16이 정의되어 있다. IPv6에서는 정적 또는 동적 주소를 사용하더라도 각 인터페이스는 또한 블록 fe80::/10에서 자동으로 링크 로컬 주소를 받는다. 이러한 주소는 해당 호스트가 연결된 링크(예: 로컬 네트워크 세그먼트 또는 포인트 투 포인트 연결)에서만 유효한다. 이러한 주소는 라우팅할 수 없으며, 개인 주소와 마찬가지로 인터넷을 통해 패킷의 출발지 또는 목적지가 될 수 없다.

링크 로컬 IPv4 주소 블록이 예약된 당시 주소 자동 구성 메커니즘에 대한 표준이 존재하지 않았다. 이 공백을 채우기 위해 Microsoft는 자동 개인 IP 주소 지정(Automatic Private IP Addressing, APIPA)라는 프로토콜을 개발했으며, 이 프로토콜의 최초 공개 구현은 Windows 98에 처음 등장했다. APIPA는 수백만 대의 기기에 배포되어 산업에서 사실상의 표준이 되었다. 2005년 5월에 IETF가 이를 정식 표준으로 정의했다.

### 주소 충돌

IP 주소 충돌은 동일한 로컬 물리적 또는 무선 네트워크에서 두 장치가 동일한 IP 주소를 갖도록 주장할 때 발생한다. 주소의 두 번째 할당은 일반적으로 한 장치 또는 두 장치의 IP 기능을 중지시킨다. 많은 현대적인 운영 체제는 IP 주소 충돌을 관리자에게 알려준다. 충돌에 관여한 기기 중 하나가 LAN의 모든 기기에 대한 기본 게이트웨이 역할을 하는 경우, 모든 기기의 인터넷 사용이 영향을 받을 수 있다.