Как определить при помощи JS браузер пользователя и его ip?
navigator.userAgent
 Информацию о браузере - устройствe и тп

fetch('https://api.ipify.org/').then(
  r => r.text()
).then(console.log);
ip
Можно достать информацию из navigator.userAgent и регулярными выражениями разбить полученную информацию на нужные фрагменты, после чего использовать. Но такой вариант подходит если есть опыт работы с регулярными выражениями. 

Если пойти другим путем, можно вывести в консоль объект navigator и посмотреть какие свойства имеются в наличии, после чего подготовить функцию в которой будет происходить получение информации из нужных свойств объекта. Например в navigator.userAgentData хранится информация, которую можно использовать сразу, без обработки регулярными выражениями. 

Или поискать библиотеки для подобных задач и использовать их для решения своих задач. Например есть такая библиотека UAParser.js или browser-dtector или Detect.js или куча других готовых решений.

Про получение IP - адреса, уже написали в соседних ответах.