Сейчас получает локальный адрес сокета. Нет возможности получить адрес удаленного сокета. Необходимо добавить дополнительный параметр, указывающий на то, какой адрес должен быть получен -- локальный или удаленный. Для получения удаленного адреса нужно сипользовать функцию getpeername.