Combined Log IP Extraction

Isolate client IPs from Apache combined access logs for downstream processing.

const fs = require('fs').promises;

const ipAddresses = [];
const data = await fs.readFile('access.log', 'utf-8');

for (const line of data.split('\n')) {
    if (line.trim()) {
        ipAddresses.push(line.split(' ')[0]);
    }
}

console.log(ipAddresses);
package main

import (
	"bufio"
	"os"
	"strings"
)

func main() {
	file, _ := os.Open("access.log")
	defer file.Close()

	var ipAddresses []string
	scanner := bufio.NewScanner(file)
	
	for scanner.Scan() {
		line := scanner.Text()
		ip := strings.Fields(line)[0]
		ipAddresses = append(ipAddresses, ip)
	}
}
ip_addresses = []

with open("access.log") as file:
    for line in file:
        ip_addresses.append(line.split()[0])
# PowerShell 7+ equivalent
$ipAddresses = Get-Content "access.log" | ForEach-Object { ($_ -split ' ')[0] }
$ipAddresses