Для получения IP адреса по доменному имени используются т.н. dns-сервера, содержащие распределённую базу данных доменных имён. Когда нам надо получить информацию, мы создаём сокет, соединяемся с dns-сервером, отправляем туда запрос и получаем от него ответ. В зависимости от данных запроса мы можем получить в том числе mx-запись. Другое дело, что гипертрофированным развитием идеи инкапсуляции мало сейчас вообще умеет работать с сокетами напрямую. Зачем это надо, подключил библитеку и вуаля, всё работает. Вот только автор этой библиотеки сам не знает, как это работает, он сам другую библиотеку подключил.
А вот чтобы стать настоящим профессионалом, желательно изучить такие вещи как сокеты и протоколы TCP/IP.