pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как использовать RAW сокеты в Java?

Лучший ответ: Ищите java обертку для libpcap - библиотека для работы с raw пакетами по сети.
вроде вот эта должна подойти
jnetpcap.com
пример отправки своего пакетаpackage org.jnetpcap.examples;

import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.jnetpcap.Pcap;
import org.jnetpcap.PcapIf;

public class PcapSendPacketExample {
  public static void main(String[] args) {
    List<PcapIf> alldevs = new ArrayList<PcapIf>(); // Will be filled with NICs
    StringBuilder errbuf = new StringBuilder(); // For any error msgs

    /***************************************************************************
     * First get a list of devices on this system
     **************************************************************************/
    int r = Pcap.findAllDevs(alldevs, errbuf);
    if (r == Pcap.NOT_OK || alldevs.isEmpty()) {
      System.err.printf("Can't read list of devices, error is %s", errbuf.toString());
      return;
    }
    PcapIf device = alldevs.get(0); // We know we have atleast 1 device

    /*****************************************
     * Second we open a network interface
     *****************************************/
    int snaplen = 64 * 1024; // Capture all packets, no trucation
    int flags = Pcap.MODE_PROMISCUOUS; // capture all packets
    int timeout = 10 * 1000; // 10 seconds in millis
    Pcap pcap = Pcap.openLive(device.getName(), snaplen, flags, timeout, errbuf);


    /*******************************************************
     * Third we create our crude packet we will transmit out
     * This creates a broadcast packet
     *******************************************************/
    byte[] a = new byte[14];
    Arrays.fill(a, (byte) 0xff);
    ByteBuffer b = ByteBuffer.wrap(a);

    /*******************************************************
     * Fourth We send our packet off using open device
     *******************************************************/
    if (pcap.sendPacket(b) != Pcap.OK) {
      System.err.println(pcap.getErr());
    }

    /********************************************************
     * Lastly we close
     ********************************************************/
    pcap.close();
  }
}
На указанном сайте есть ещё примеры в разделе documentation examples думаю разберетесь

Худший ответ: в Си делал вот так.. data[]=//заполнял данные
int sock=socket(PF_PACKET,SOCK_RAW,htons(ETH_P_802_3));
send(sock,data,PACKET_LENGTH,0);
а клиент слушал все, что происходило в сети.. 
и, в зависимости от данных, отклонял или принимал пакет..
нужно повторить что-то похожее на Java
Вопрос: Отличие цифровых пинов в arduino?

Лучший ответ: Увы, это именно тот случай, в котором использовать "идеологию" Arduino есть зло. Curly Brace правильно написал - это ШИМ(PWM) - выводы для генерации широтноимпульсной модуляции. Но это вторично.
Первично является  то, что в каждый имкроконтроллер вставлена как обычные порты, которые можно настроить как на ввод так и на вывод, так и куча дополнительных функций, кторые за счет потери этих контактов для ввода или вывода можно заставить работать в специфических режимах.
Например выводы XTAL1, XTAL2 и RES уже не доступны для использования в проектах Arduino - они просто выполняют нужную задачу, необходимую самой Arduino. Хотя при желании перепрограмировать их можно запросто. Тоже самое относиться  и к TX, RX - либо цифровые выводы, либо UART. И то что называется аналоговыми выводами всего лишь говрит о том, что помимо цифры ихможно заставить реагировать на изменения уровня сигнала в диапазоте от 0 до Vcc, отностильно настроек некоторых регистров и напряжения на выводе ARef с преобразованием сигнала из аналогово в цифровой (ADC).
Помимо этого на борту имеются уже указанные ШИМы, Прерывания, Таймеры и несколько интерфейсов для обмена данными.
Больше инфы об этих плюшках вы найдете в даташите на свой конкретный контроллер в своей версии Ardurinы на сайте atmel.com

Худший ответ: это ШИМ аппаратный
а tx можно юзать как угодно, до тех пор пока не нужен канал связи по usb между компом и ардуиной
Вопрос: Какой Linux выбрать для Web-сервера?

Лучший ответ: Был… Ubuntu 11.04
решил установить и настроить сервер с нуля
Вообще Ubuntu устраивает
Ubuntu 12.04
Поддерживается до апреля 2017 года, потом наверняка будет следующая LTS
Убунта вообще довольно хорошая, если её правильно готовить

Есть ли возможность починить обновления для моего старого сервера с Ubuntu?
Даже если упали репы – всегда можно выкачать то, что в них было и сделать свои репы. Но я бы просто обновилась с флешки (установочная флешка с 11.10 будет пригодной для апгрейда с 11.04, к примеру)

Худший ответ: Что-то новенькое :)
Вот тут это обсуждали. Вообще Ubuntu устраивает, но может я просто ничего слаще морковки не видел? :)

P.S. конечно это комментарий был на предыдущий ответ :(
Вопрос: Как определить, что touchstart и touchend прошел на том же елементе?

Лучший ответ: var tmp;

function onTouchStart(e){
 tmp = e.target;
}

function onTouchEnd(e){
 if( e.target == tmp ){
  // выполняем: touchstart и touchend на одном и том же элементе
 }
}


Худший ответ: Приходит на ум сохранение в временную переменную event.target при touchstart и последующее сравнение с event.target при touchend. Но это теория, надо проверять на практике. Также стоит проверить stopPropagation.
Вопрос: Как исправить ошибку доступа у формы в Битрекса?

Лучший ответ: Для дефолтного статуса, разреши доступ "для создателя результата"

Худший ответ: зайди в настройки модуля компонента в раздел доступ
Вопрос: Поиск и выделение слов в тексте (Алгоритм)

Лучший ответ: Для начала понадобится отдельная функция или утилита stem(), которая для любого слова вернёт его основу (именно это и делают поисковые движки, в т.ч. Sphinx и Lucene, откуда её и можно достать и использовать в своих целях). Также не помешает функция tokenize(), разбивающая 

Если такая функция есть. Проходим по всем словам из словаря (source), а из получившихся основ строим trie, в котором листьями будут соответствующие person_id. Имена из 2 и более слов транслируются в n-граммы соответсвующих основ, разделённые пробелами. Т.е. имя «Иванова Анна Михайловна» будет транслировано во что-то вроде «иванов анн михайловн» (использовать lowercase-фильтр или нет — это уже зависит от приложения и текста: если текст грамотный, то не надо, если «из интернетов», то лучше всё-таки использовать). 

Дальше токенизируем текст, стеммим каждое слово и последовательно ищем их в нашем trie. Можно искать сразу триграммы, можно подтягивать второе и третье слово по необходимости (если есть частичное совпадение в trie). 

Если trie реализовывать лень, можно заменить их на hash map'ы, но тогда имена из нескольких слов лучше хранить в виде списка, а hash map сделать вложенным (первое слово в hash map'е верхнего уровня указывает на другой hash map, хронящий все возможные вторые слова для указанного первого слова; получается этакое дерево из hash map'ов). 

Если считать, что поиск по trie/в hash map'е выполняется за O(1), то весь алгоритм отработает за O(n), где n — количество слов в тексте. При этом не придётся индексировать весь текст, а только структуру для хранения основ имён (индексирование в Lucene/Sphinx, вообще говоря, не самая быстрая операция, а размер индекса около 20-30% от текста, так что не факт, что влезет в память; естественно, я предполагаю, что количество имён меньше размера текста).

Summary: 

1. Применить stem() ко всем именам.
2. Сохранить слова в структуру с быстрым поиском (trie/hash map).
3. Токенизировать текст, применить stem() ко всем полученным словам.
4. Пройтись по списку получившихся слов, при этом ища их в структуре с именами. 
5. Profit.

Худший ответ: Умные слова: словоформа, нормализация, компьютерная лингвистика, стеммер Портера, aot, mystem. Для начала, надеюсь хватит.

И кстати, «хватит извращений, откапывайте стюардессу». Посмотрите на apache solr (сделан на lucene).
Вопрос: Можно ли сделать так чтобы из Search Box'а в Firefox'е слова поиска исчезали автоматически?

Лучший ответ: попробуйте:
https://addons.mozilla.org/en-US/firefox/addon/7632/

Худший ответ: в Linux на FF 3.6.12 не ставится :(
Вопрос: Вы что на самом деле не выключаете комп?

Лучший ответ: Компьютер в простое кушает поменьше, чем в нагрузке - это да.
Начинает тормозить - уберите всё лишнее запущенное, что может память отьедать (браузеры например).
А не выключают компьютеры не просто так - кто-то рендерит, кто-то компилирует а у кого-то Дота долго грузится - так чтобы заново не загружать, не выключают.

Худший ответ: Я в спящий режим на ночь отправляю не знаю считается это выключением или нет...
Вопрос: Можно ли подключить HDD к WiFi роутеру через RJ-45 интерфейс?

Лучший ответ: Нет, так как USB 2 Eternet по сути сетевая карта с USB интерфейсом.

Худший ответ: самый дешевый вариант
берете это или вот это, плюс это, а если hdd 2.5" то это
итого: 45,79$ :)
Вопрос: Какую книгу по шрифтам и типографике прочитать?

Лучший ответ: 
Основы стиля в типографике (djvu) (4.5 мб) (скачать) — Роберт Брингхерст
Типографика. Руководство по оформлению (pdf) (5,1 mb (+3%)) (скачать) — Эмиль Рудер
Типографика: шрифт, верстка, дизайн (djvu) (5,1 mb (+3%)) (скачать) — Джеймс Феличи


Извините, русскоязычных не рекомендую

Худший ответ: Феличи «Типографика: шрифт, верстка, дизайн» очень понравилась, не знаю только осталась еще где-нибудь или нет
Вопрос: Возможно-ли коммутировать 1 виртуальную сеть из нескольких портов маршутизатора?

Лучший ответ: В вопросе уже есть ответ - виртуальная сеть - VLAN, вот и используйте этот стандарт - 802.1Q.

Худший ответ: На маршрутизаторе можно объединить порты в bridge. Но вообще это совсем не правильный дизайн. Бридж как правило делается центральным процессором маршрутизатора и он умрет от нескольких десятков Mbit трафика. Лучше объединить коммутаторы между собой напрямую в один широковещательный домен.
Вопрос: Подработка для сетевика

Лучший ответ: Стать хорошим специалистом. Работа найдется всегда

Худший ответ: Админить линух, писать статьи на тематических ресурсах)
Вопрос: 404 Not Found — как заменить на свою страницу?

Лучший ответ: Можно через файл .htaccess
ErrorDocument 404 /error/404_error.html

Худший ответ: Кастомная 404 без HTTP/1.1 301 Moved Permanently
Извините, нашел. Странно что при выборе темы не выдало этот вопрос в результатах)
Вопрос: Как автоматически заполнить сайт на Wordpress?

Лучший ответ: https://wordpress.org/plugins/fakerpress/ 
Оно ?

Худший ответ: Многие шаблоны уже идут с демо контентом, посмотрите документацию по вашему шаблону.  Если нужно бесплатно, можно скачать тестовые данные от разработчика WordPress по адресу https://wpcom-themes.svn.automattic.com/demo/theme...
Вопрос: У кого есть опыт использования (не)лицензионной музыки в играх и приложениях?

Лучший ответ: Лучше всего создавать свою музыку (пусть и из семплов, в программах для создания музыки). Для игр такая музыка вполне подходит. А вот если вы возьмете мелодию, на которую есть права у другой компании (особенно у американской) проблем не оберетесь. Мы получили проблемы даже от того что в нашей программе было слово «TODO» (именно большими буквами), так как это оказался зарегистрированный товарный знак какой-то компании (вообще не связанной с компьютерами, и на нас чуть не подали в суд. С музыкой советую не шутить, там все серьезней.

Худший ответ: Вот хороший сайт с недорогой и легальной музыкой: pond5.com
Раздел на русском языке: www.pond5.com/ru/royalty-free-music
Вопрос: Оценить стоимость ПК в долларах?

Лучший ответ: Смотреть самую низкую цену на этот или близкий товар  на яндекс-маркете и скидывать 50-70%, в зависимости от степени б/у и давности приобретения. 
Это если надо оперативно продать. Если не надо быстро - выставляем любую цену и ждем либо покупателя, либо полного обесценивания товара. :)

Худший ответ: Думаю максимальная цена - 1000$
Вопрос: Что помешает адаптивить стараничку?

Лучший ответ: Вы можете проверить себя по пункту 1.
Но лучше - по всем.

Худший ответ: нужно делать сразу.
Вопрос: Целесообразно ли использовать Sun в качестве имени для Open Source проекта?

Лучший ответ: Вы подумайте над тем, как кто-то будет Ваш проект в поисковиках искать.

Худший ответ: Не знаю как Oracle, но я отношусь резко отрицательно: не нужно использовать имя «почившей» компании оставившей после себя добрую память и много потомков отличных, живых, проектов.
п.с:
Хотите слово Sun в названии проекта — используйте лучше, что то типа: «Son of Sun» (этот концепт, при желании, можно и с древними инками связать :) )
Вопрос: Что читать дальше?

Лучший ответ: Без практики читать бесполезно.
Берите себе какую то задачу, пробуйте реализовать, параллельно читайте что то умное.

Худший ответ: Только не зацикливайтесь на книжках именно по С++..
Начините читать про проектирование интерфейсов (Алан Купер + Джеф Раскин)
Что нибудь про ООП; (например, Мартин)
Тестирование; (Бек, Jeff Langr, Ошоре The art of unit testing)
Рефакторинг (Фаулер)
Хорошая книжка "Совершенный код" Макконнел. 
Ну и что нибудь разгружающее мозг, типа "Идеальный программист"
Выбора куча. Хороших книг хватает.
Вопрос: Использование нескольких яп?

Лучший ответ: Профессиональные программисты как раз так и работают. В большинстве случаев встречаются такие задачи, что требуется прибегать к различным языкам программирования, инструментам разработки, проектирования, тестирования, профилировки, отладки, совершенно разным концепциям.

Худший ответ: JS+HTML+PHP+SQL+C - вполне можно.
Вопрос: Подзапрос в условии ON для LEFT JOIN'а в MySQL

Лучший ответ: Понимаю, что этот не тот ответ, которого вы ждёте, но если не ошибаюсь, вот такой запрос будет работать правильно:
SELECT U.*, S.*
FROM `user` AS U
LEFT JOIN stats AS S 
  ON S.user_id = u.ID 
AND s.date = (
SELECT max(date) 
  FROM stats AS S2 
  WHERE s2.user_id = u.id
)


WHERE U.id =1 — по желанию :)

Худший ответ: А если LIMIT убрат, он со всеми записями соединит? В SQLite, например, можно использовать внутренний идентификатор ряда без лимита, т. е. это было бы:

SELECT u.*, s.*
  FROM user u
  JOIN stat s ON s.rowid = (
       SELECT t.rowid
         FROM stat t
        WHERE t.user_id = u.id
     ORDER BY t.date DESC)
 WHERE u.id = ?

но там явно оговаривается, что (SELECT y ...) в выражении возвращает первую совпавшую запись, а не все; не знаю, как с этим в MySQL.
Вопрос: Как установить программу с github в Ubuntu при помощи командной строки?

Лучший ответ: не воспринимает поскольку такой команды нет.https://github.com/elmad/darkcoin-cpuminer-1.3-avx-aes.gitзаменить наgit clone https://github.com/elmad/darkcoin-cpuminer-1.3-avx-aes.git

Худший ответ: Вам нужно сделать git clone https://github.com/elmad/darkcoin-cpuminer-1.3-avx-aes.git
cd ./darkcoin-cpuminer-1.3-avx-aes/
и так далее
Вопрос: Как передать переменную с классом элемента jquery?

Лучший ответ: Селектор для классов начинается с точки:$('.' + my)

Худший ответ: Имена классов начинаются с точки:var my = '.' + $('#1').attr('class');
$(my).click(function() {
  $(my).css( "color", "green" )
});
Вопрос: Как бороться с такой попыткой взлома?

Лучший ответ: как то попросили joomla избавить от инжектов и вебшелов.. там файлов и
папок миллиард.. про папки /cache вообще молчу..  спам с хоста валил тоннами..
сканеры эффекта не давали. 
посидел подумал, и сделал так:
прописал в htaccessphp_value auto_prepend_file "/dir/path/log_request.php"
который просто все запросы логгировал, ну типа @file_put_contents('/tmp/log_request.tmp', $_REQUEST,  FILE_APPEND);
запросов была масса, и в конечном счёте отфильтровал зловреды и нашёл где лежали 
вебшелы и куда были внедрены инжекты.

Худший ответ: Я думаю, вам не нужно ломать над этим голову. Главное чтоб система справлялась. Сложно будет изучить и понять множество тип атак. Радуйтесь что у вас не вордпресс и не джумла.
Вопрос: Как получить видеопоток с IP-камеры по RTSP/RTP в Linux(Debian)?

Лучший ответ: Я получал так:
ffmpeg -rtsp_transport tcp -i rtsp://user:password@xxx.xxx.xxx.xxx:554/channel=1&stream=0?.dtp -vcodec copy -an -y out.mp4
Если надо в программе то тут несколько уроков
dranger.com/ffmpeg/tutorial01.html

Худший ответ: vlc player, не знаю как в линуксе а в винде жмёшь контрол+N и открывает окно куда нужно вить ртсп ссылку, и всё
Вопрос: Как показать результат mysqli_query?

Лучший ответ: Используй PDO. Функции mysqli_* — это пережиток прошлого.

Худший ответ: А что Вы уже пытались сделать? «Вот код, пофиксьте мне его» — не слишком вежливо.
Вопрос: Базовые знания алгоритмов?

Лучший ответ: Есть ли что-то небольшое, для ознакомления со всем этим, но безх фанатизма?
Есть. Всем известный Кормен написал еще Алгоритмы. Вводный курс.
Базовые алгоритмы (сортировка, поиск, графы, строки, криптография, сжатие), псевдокод, неформальный стиль, чуть более двухсот страниц. Проще для въезжания/ознакомления не встречал.

Худший ответ: Если без фанатизма и на русском языке, то посмотри это курс https://shultais.education/courses/algo там всё довольно просто, со схемами, графиками и анимацией. Правда на Питоне, а не на C++, но в случае алгоритмов разницы особой нет. Из книг можно посмотреть Рода Стивенса и Кормена - хорошие авторы. Вообще даже если учиться на курсе, книга всё-равно нужна.
Вопрос: Как реализовать появления модального окна bootstrap при загрузке страницы?

Лучший ответ: Если вы используете библиотеку Bootstrap, тогда:$(document).ready(function(){
    $('#myModal').modal('show');
});

Худший ответ: Если вы используете библиотеку Bootstrap, тогда:$(document).ready(function(){
    $('#myModal').modal('show');
});
Вопрос: Как закачать письма обратно на почтовый сервер?

Лучший ответ: Простите, не удержался — напомнило вопрос «Как закачать файл обратно в Интернет — он мне больше не нужен».

Худший ответ: по IMAP закачивайте, если есть возможность. Просто закиньте письма в папку аккаунта — и оно синхронизируется через некоторое время.
Вопрос: Изучаю java,загвоздка состоит в том,куда двигаться дальше?

Лучший ответ: Но чтобы устроится на работу junior developer мне нужно сделать хотя бы два проекта
В чём проблема? Возьмите и сделайте. Что-то суперсерьёзное делать не нужно. Надо лишь показать, что можете работать со средой разработки и знаете основы языка Java. От стажёра большего не требуется.В этом состоит загвоздка,проект без помощи я еще не могу создать,да и не знаю толком какой проект сделать.
А вот эти навыки Вы должны продемонстрировать. Достаточно бесплатных курсов, чтобы получить первичные навыки. Например, этот. Тщательно воспроизведите примеры. 
Неплохая среда разработки Eclipse (https://eclipse.org/downloads/packages/eclipse-ide...). Есть книги на русском, есть статьи и документация.

Худший ответ: Можете попробовать делать правки к опенсорсным проектам на ГитХабе, ещё можно просто писать в компании, которые набирают джунов, чтобы они вам хотя бы тестовое задание выслали и делать их, а также изучить хотя бы основные алгоритмы и структуры данных.
Вопрос: Виджет Instagram в Wordpress- какой из плагинов наиболее вменяемый?

Лучший ответ: Все что пробовал из бесплатного, ерунда.
Себе делал на instafeed js. Там все быстро и понятно настраивается.

Худший ответ: Использовал виджет Frisbuy, они платные, но для Интернет-магазина лучше решения не нашел.
Вопрос: Как сделать индикатор загрузки страницы?

Лучший ответ: Вот например: NProgress: прогресс-бар как на You...

Худший ответ: preloader называется.
Гугли
Вопрос: Вычислить в программе delphi?

Лучший ответ: Не бывает так, чтобы пришли и сказали "через 4 часа ты должен вычислить вот это, только на Delphi". Поэтому не нужно вам ничего вычислять.

Худший ответ: А без всяких дельфи и паскалей можете решить приведенную систему уравнений?
Нужно понимать что вы хотите решить.
Вопрос: Как тестируют ПО?

Лучший ответ: 1) Есть различные фазы тестирования ПО: модульное, интеграционное, системное итд
Как правило используются различные инструменты для автоматического тестирования.
Что бы создать автоматизированный тест, необходимы навыки программирования.
Соответственно программирование теста и называется "писать тест"
2)Модульное тестирование (юнит-тестирование) — тестируется минимально возможный для тестирования компонент, например, отдельный класс или функция. Часто модульное тестирование осуществляется разработчиками ПО.
Интеграционное тестирование — тестируются интерфейсы между компонентами, подсистемами или системами. При наличии резерва времени на данной стадии тестирование ведётся итерационно, с постепенным подключением последующих подсистем.
Системное тестирование — тестируется интегрированная система на её соответствие требованиям.
https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%81%D...
3) Море. Зависит от вида ПО (сайт, десктоп, мобильное приложение), языка, итд.
Мы в той или иной степени используем PHPunit, Codeception, Selenium 
4) Можно в том числеи тыкать, да. Но не просто, а осмысленно - с проверкой граничных значений.
Называется ручное тестирование, некоторые вещи другими способами проверять очень геморройно.

Худший ответ: Есть книжка "Тестирование программного обеспечения", Перевод "Теsting Computer Software". 
Мне очень нравится. Хорошо описана и техническая, и процессно-командная сторона дела.
Вопрос: На сколько мозг мощнее суперкомпьютера?

Лучший ответ: Есть  статья Ализара.
Там ~10,51 петафлопс.
И советую ещё вот эту.
Тут уже ~16,32 петафлопс.Про 10^16:Количество нейронов в головном мозге человека примерно равно 100000000000 (ста миллиардам). Данные в из разных источников немного различаются, но в целом картина схожа. Каждый из этих нейронов имеет от 7000 до 10000 синапсов. В среднем, через один синапс проходит 10 импульсов в секунду, т.е. мы имеем тактовую частоту 10 герц на одну синоптическую связь. А теперь занимательная математика: 100000000000 нейронов мы умножаем на 10000 их синоптических связей и умножаем все это на 10 герц. Мы получаем число с шестнадцатью нолями после единицы, а иначе 10^16. 
©

Худший ответ: "Японский суперкомпьютер оказался в 144 тысячи раз медленнее мозга человека" // lenta.ru/news/2014/01/15/neuro
А в целом, сопоставление достаточно условно, поскольку принципы работы разные и мозг изучен не так хорошо, как хотелось бы.
Вопрос: Какие есть ip/sip/voip-телефонию с отчётностью для организации отдела продаж (исходящие холодные звонки)?

Лучший ответ: Заключить договор с МТТ,+ развернуть Asterisk, или купить безлимитную sip телефонию в Москве(примерно 500р в месяц на линию), подключить к своему asterisk и звонить, звонить, звонить

Худший ответ: Подключили , используем на входящие в отдел продаж
Вопрос: Бесплатные домены второго уровня?

Лучший ответ: Брать условно-бесплатный домен, если вы собираетесь в него вкладывать силы и время, очень рисковано. Если совсем не хочется платить за домен, то многие хостеры дают его бесплатно при оплате домена на год. Только следите, чтобы домен регистрировали на вас. Тогда при желании  домен можно забрать и перенести на другой хостинг.

Худший ответ: > Есть бесплатная доменная зона .ml
Она не бесплатна, бесплатен только tk, емнип. 
> Если я зарегаю домен и начну раскручивать сайт, улучшать сео показатели, то регистратор может просто взять и забрать его? 
Может. На практике, с белыми проектами такого не случается. 
> Можно ли будет как то его отстоять в суде?
Вряд ли. В оферте у них не зря всё столь расплывчато -=)
Вопрос: Возможно ли создать один .bat файл для подключения и отключения к интернету?

Лучший ответ: С учетом идеи GavriKos :ping -n 2 8.8.8.8|Find /I "TTL="||goto no_inet

cd %systemroot%\system32 
start rasdial [имя_подключения] /disconnect
goto end

:no_inet
cd %systemroot%\system32 
start rasdial [имя_подключения] [имя_пользователя] [пароль]

:end

Худший ответ: Питон вам в руки. Пингуете 8.8.8.8, и в зависимости от доступности выбираете что делать. Можно из питона прям rasdial и вызвать, если что.