> For the complete documentation index, see [llms.txt](https://help.security.gallagher.com/knowledge-hub/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.security.gallagher.com/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-assigning-a-controller.md).

# Assign a controller IP address

Assign an IP address to a Controller 6000 using BootP, default IP, or ccftBootp.

> 📋 **Prerequisites:** Read [Bringing online and networking](/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-bringing-online-and-ne.md) first if you are new to getting a controller onto the network.

Controllers need to establish a network connection to the server to communicate configuration and access data.

## Server and controller connections

At time of writing, two connections exist between the controller and server.

Inbound connection to the controller from the server:

```
TCP   10.192.97.68:62848    10.112.92.230:1072    ESTABLISHED    1528
```

Outbound connection from the controller to the server:

```
TCP   10.192.97.68:1072     10.112.92.230:49398   ESTABLISHED    1528
```

> ⚠️ **From Command Centre v8.50 onwards** there is **only an outbound** network connection from the Controller to the Server on Port 1072 (default).

***

## Method 1 - Controller same subnet as server, no DHCP

1. Ensure the **FT Bootstrap Protocol Service** is running (Control Panel > Administrative Tools > Services).
2. In Command Centre **Configure > Hardware > Controller Properties > Setup** tab, set:
   * MAC Address
   * Controller IP Address
   * Gateway (if required)
   * If the Controller connects to the server via the internet, or the server has multiple adapters with the controller not connected to the Primary adapter, enter the server's IP Address in the **Use different IP for Server** field.
3. Confirm the Server IP Address that will be sent to controllers by pinging its HOST name:
   * Run `C:\>ipconfig /all` to find the server's HOST name.
   * Ping the HOST name. The resolved IP is what Command Centre stores and sends to controllers.

> **Note (pre-v6):** The IP Address was only resolved when the Server Name on the Controller's Setup tab was typed (or modified) and **Apply** or **OK** clicked. From v6 onwards, the Server IP is resolved every time the Command Centre services start.

4. Ensure a network cable with an active connection is connected to the controller.
5. Power on the controller with **DIP switch 2 ON**. When it reaches the 3-flash state, it will broadcast requesting an IP Address.
6. The FT Bootstrap Protocol Service replies with the controller's configuration, including the server's IP Address.

> ⚠️ **MAC mismatch:** If a controller is not configured in Command Centre (MAC address does not match), an event is raised. Open the Event > Details tab to view the actual MAC Address of the requesting controller.

> ⚠️ **"Sent successfully" does not mean "applied":** A successful "IP address sent to the controller" event does **not** guarantee the controller will actually use this configuration. As the controller broadcasts, any BootP or DHCP server on the network may also reply. **DHCP-supplied IP configuration always takes priority over the FT Bootstrap Protocol Service** (which is a BootP server).

> ⚠️ **Broadcast suppression across subnets:** Most networks suppress Broadcast messages across different subnets. If the controller is on a different subnet to the Command Centre server, **BootP will not work** in this environment. The Server will never receive the broadcast request.

***

## Method 2 - Controller default IP Address

1. In Command Centre, configure the controller as per Method 1. Ensure **DIP Switches 1, 2 and 3** are set on the Controller.
2. Reset the Controller by cycling the power. The Controller will use these default addresses:
   * IP Address: `192.168.1.199`
   * Server IP: `192.168.1.198`
   * Gateway: `192.168.1.198`
   * Subnet: `255.255.255.0`
3. Ensure the Controller has an Ethernet connection to a PC with an IP Address in the same Subnet as the Controller (`192.168.1.xxx`).
4. Open an internet browser.
5. In the Address field enter: `192.168.1.199/config.` (note the trailing full stop). Press Enter. The "Enter Network Password" screen displays.
6. Enter `config` (lowercase) for User Name and `[REDACTED]` for Password (contact Tech Support).
7. Click **OK**. The Gallagher Controller Configuration screen displays.
8. Select **LAN Configuration**. The Ethernet LAN Configuration screen displays.
9. Complete the fields and click **Save**:

| Field              | Description                                                                                                      |
| ------------------ | ---------------------------------------------------------------------------------------------------------------- |
| IP address         | IP for the Controller. Should match the IP configured on the Controller's Setup property page in Command Centre. |
| Server IP address  | IP address of the Server.                                                                                        |
| Gateway IP address | Gateway for the Controller's segment of the network.                                                             |
| Subnet             | Subnet for the Controller.                                                                                       |

10. Click **Set** in the LAN Configuration.
11. The Controller should be in a 2-flash state.
12. Turn **OFF** DIP switches 1, 2, and 3.
13. Disconnect the network cable from the laptop and plug the controller into the site network.
14. The controller should come online to the server.
15. Upgrade the controller to the correct version of firmware for the server. The controller will restart.
16. If upgrading from WinCE to Linux, you will have to apply the Revalidate Certificate override. See [Revalidate Certificate](/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-revalidate-certificate.md).

***

## Method 3 - ccftBootp.exe (DHCP server on network, or controller in different subnet to server)

In Command Centre, configure the controller as per Method 1.

1. Extract the files from the zip file.
2. Connect a laptop directly to the Controller via an X-over Ethernet cable (newer laptops auto-cross with a standard cable).
3. Repower the controller to force it to request an IP Address.

When the controller requests an IP Address, you will see one of the following messages (BootP has Debug enabled):

* **Successful Request and Reply.** Shows the request from the MAC address and the reply with the IP Address and the line from `BootPTab.txt` that supplied the reply.
* **No Matching MAC Address in BootPTab.txt.** Shows the MAC Address that requested the IP Address and that there were no matches for this MAC address in the `BootPTab.txt` file.

4. Once the messages appear and the controller reaches a 2-flash state, unplug the laptop and connect the controller back onto the network.

> **If the controller does not come online (or go to a 1-flash state):** Web-browse the controller and confirm the controller's TCP Sender page for the controller's IP configuration. See [Testing Controller Connections](/knowledge-hub/products/cc-hardware/controllers/controller-6000/troubleshoot/controller-6000-testing-controller-connections.md).

***

## First-time vs subsequent connection notes

**First-time controller connection to server:**

If a controller has never connected to the server, the first time it connects it **must** have the correct IP Address for the Server PC.

When the controller makes the connection, the Server checks that the controller has the correct server IP Address. If the controller does not have the correct IP for the server, the server **actively refuses** the connection. This is due to the way Command Centre manages its certificates.

The IP Address the controller holds for the server can be checked on the Controller **TCP Sender** web page.

**Subsequent controller connections and DHCP:**

If the controller has previously connected to the server PC and has been reset for some reason, the controller can be assigned its IP Address from a PC that does **not** have to have the same IP Address as the Command Centre Server PC (for example, a DHCP Server with a reservation for the controller).

When the controller connects to the server, even if the controller has the wrong IP Address for the server, the server will **update** the controller with the correct server IP Address.

***

🔗 **Related**

* [Bringing online and networking](/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-bringing-online-and-ne.md). The wider bringing-online workflow.
* [Command Centre Server has Multiple Network Adaptors](/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-command-centre-server.md). How CC picks the server IP to send to controllers.
* [Dynamic DNS](/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-dynamic-dns.md). DNS-based failover to a backup server.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.security.gallagher.com/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-assigning-a-controller.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
