• Почему происходят соединения по IPv6?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    почему у сервера есть соединения IPv6

    скорее всего потому что приложение, в данном случае апач, использует IPv4-mapped IPv6 адрес.
    Можно посмотреть в /proc/net/tcp6, там эти адреса выглядят так:
    sl  local_address                         remote_address                        st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
    14: 0000000000000000FFFF00001F44CB0A:A5A2 0000000000000000FFFF00004B44CB0A:06B4 01 00000000:00000000 02:000000F6 00000000  1000        0 20787517 2 ffff8e7add433800 20 4 1 10 -1

    т.е. 96 старших битов адреса -- ::FFFF:0:0, 32 младших бита -- обычный IPv4 адрес.

    Вот пример кода, который, если его скомпилировать и запустить, открывает сокет ipv6, к которому можно присоединиться как по ipv4 так и по ipv6:
    $ ./ipv6 &
    $ nc 127.0.0.1 13330 &
    $ lsof -i6
    ipv6      18422 jcmvbkbc    3u  IPv6 21018438      0t0  TCP *:13330 (LISTEN)
    ipv6      18422 jcmvbkbc    4u  IPv6 21018439      0t0  TCP localhost:13330->localhost:36196 (ESTABLISHED)
    Ответ написан
    2 комментария
  • Что написано в строке указатель или ссылка?

    @abcd0x00

    не совсем понимаю как интерпретировать этот кусок
    (struct sockaddr_in *)&serv_addr
    то ли указатель на сруктуру, то ли ссылка, то ли ещё что...

    Это берётся адрес структуры в памяти определённого размера и этот адрес приводится к типу адреса структуры другого размера. Адрес тот же самый остаётся, а размер данных по этому адресу как бы меняется. На самом деле она уже там лежит в правильном размере, просто сама структура является как бы составной. И чтобы компилятор не ругался, что структура не того типа подаётся, делается такое приведение.

    В лине адреса делаются таким образом: берётся общая структура, которая подходит под все адреса, потом к ней в конце привязывается (дописывается в памяти) адрес в определённом виде. А так как адреса бывают разных размеров, то и размер конечной структуры может варьироваться. Сам язык по стандарту допускает дописывание в конец структуры каких-то данных, поэтому эта возможность языка и используется в POSIX-системах для составления адресов перед их использованием.
    Ответ написан
    Комментировать
  • Как отсортировать элементы так, чтобы слева находились нечетные элементы, а справа — четные?

    @Mace_UA
    2017 год. Вам не нужны std::binary_function и прочая устаревшая фигня. Да и можно заюзать лямбду, если этот компаратор нужен только в одном месте кода.

    Судя по описанию задачи, Вам нужно не отсортировать массив -- Вам нужно сделать partition.

    Воспользуйтесь стандартными алгоритмами std::partition (если относительный порядок чётных и нечётных элементов между собой не важен) или std::stable_partition (если нужно сохранить оригинальный порядок).

    Пример:
    std::stable_partition(vec.begin(), vec.end(), [](int x) { return x % 2 == 1; });
    Ответ написан
    Комментировать
  • Почему такой странный вид файла зоны?

    @arachnid
    raw-формат для slave-зон начал используется еще с 9.9. с определенного времени стал форматом по умолчанию.

    для просмотра

    named-compilezone -f raw -F text -o example.net.text example.net example.net.raw
    Ответ написан
    Комментировать
  • Как можно обойти проверку пароля?

    @anonlatte1
    Используй уязвимость, связанную с нулевым байтом
    В конце строки добавь %00. Всё, что находится после этих символов, не будет регулярным читаться, но будет возможность вставить нужные символы, подходящие под условие получения флага
    Решение таска example.com/?password=pass%00--
    Ответ написан
  • Почему такая разница в RTT (ping)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Тем, что отвечать на пинги - не прямая обязанность коммутатора, и делает он это, скорее всего, с низким приоритетом. А вот передача пакетов между компьютерами идёт в высоком приоритете, соответственно выполняется быстро.
    Ответ написан
    Комментировать
  • Чем отличаются системный администратор, сетевой архитектор, сетевой инженер?

    gbg
    @gbg Куратор тега Системное администрирование
    Любые ответы на любые вопросы
    Первый эксплуатирует, второй проектирует, третий - строит.
    Ответ написан
  • Чем отличаются системный администратор, сетевой архитектор, сетевой инженер?

    saboteur_kiev
    @saboteur_kiev Куратор тега Системное администрирование
    software engineer
    Нет.
    В СНГ названия должностей могут быть вообще от балды, поскольку кто-то придерживается стандартов СССР, в которых таких должностей не было вообще, и могут влепить даже "оператор ЭВМ".

    Разница может быть только от того, что написано в вашем резюме. А трудовая книжка интересует только пенсионный фонд.
    Ответ написан
  • Как стать настоящим системным администратором?

    @lubezniy
    Если Вы хотите стать настоящим сисадмином, научитесь сперва в любой момент знать о своём хозяйстве всё - как работает, в какие моменты глючит, как решать проблемы с глюками. Проведите инвентаризацию и подготовьте полную (насколько это возможно) документацию по хозяйству, научитесь её вести и вносить изменения сразу, как только в хозяйстве что-то меняется (история изменений тоже полезна). Конкретно - аппаратная и программная конфигурация всех компьютеров, серверов, сетевого оборудования, печатающих устройств и т. п., схема сети, желательно схема электропитания, а для совсем продвинутых - и другие потенциально опасные коммуникации (кондиционеры, водопроводные трубы в местах, где в случае проблем что-то может литься на оборудование и его портить, и способы отключения, чтобы можно было быстро их найти). Затем определите критичные моменты в деятельности компании, где нежелательны технические простои, продумайте способы уменьшения простоев при возникновении проблем и по наиболее вероятным сценариям реализуйте их, а также спланируйте плановое обслуживание техники, чтобы уменьшить вероятность аварий. Обязательно реализовать резервное копирование наиболее критичных данных с проверкой восстанавливаемости. Литературу и гугл уже можно будет смотреть и читать по конкретным вопросам, которые неизбежно возникнут при реализации. Когда освоите всё и потренируетесь в реакции на аварии и научитесь своевременно обслуживать оборудование в плановом порядке, останется научиться спать на работе и почувствовать себя настоящим сисадмином. Как-то так.
    Ответ написан
    Комментировать
  • Как отсортировать элементы так, чтобы слева находились нечетные элементы, а справа — четные?

    @dmtrrr
    Backend developer
    Прочитайте про битовые операции. Если коротко, у нечетного числа в бинарном представлении последний бит всегда 1, например 3 это 11, 5 это 101 и тд.
    Ответ написан
    1 комментарий
  • Что написано в строке указатель или ссылка?

    @Mercury13
    Программист на «си с крестами» и не только
    Одно из двух.

    а) Либо так называемый reinterpret_cast или type pun — берётся кусок памяти serv_addr неизвестного типа и рассматривается как совсем другой тип, sockaddr_in. Корректность такого «взять кусок памяти и рассмотреть как другой тип» остаётся за программистом, возможны тонкие ошибки кроссплатформенности.

    б) (в данном примере, скорее всего, нет, но тоже бывает) Либо так называемый const_cast — переменную, отмеченную как const, мы рассматриваем как неконстантную того же типа. Опять-таки, корректность такого преобразования остаётся за программистом: если переменная окажется в неизменяемой памяти, а мы её решим изменить, будет нехорошо.

    То и другое — либо сильно обобщённый код оперирует указателями «на что угодно», либо какая-то разглючка, либо плохая архитектура, либо последствия того, что где-то приходится опускаться на самый низкий уровень (обработка сообщений Windows, плагинная система).

    Подобное преобразование типа выполнено в стиле Си (взять указатель на переменную и преобразовать в другой тип-указатель).

    Кстати, в коде ещё одна ошибка кроссплатфроменности — константа -1 только для Linux. Портабельно — макрос SOCKET_ERROR.

    UPD. Это именно что reinterpret в сильно обобщённом (и сильно системном) коде. Функция connect принимает указатель на кусок памяти, который состоит из двухбайтового названия протокола и сетевого адреса произвольной длины (тип sockaddr). Тип sockaddr_in — это как будет эта выглядеть эта память для адресов IPv4 (протокол AF_INET). Одна и та же функция connect может подключаться по IPv4, IPv6, Apple Talk, Bluetooth и куче других протоколов, ныне известных разве что историкам. Другой протокол, другое AF_, другие sockaddr. Так что берём версию для IPv4 (sockaddr_in), заполняем её и передаём в connect, преобразовав в «более общий» тип sockaddr. Опознав, что имеем дело с IPv4, функция connect снова проинтерпретирует эту память как sockaddr_in.
    Ответ написан
    3 комментария
  • Может ли работа системным администратором помочь в перспективе стать junior backend-разработчиком?

    Sanes
    @Sanes
    Смотря, что делать будете. Одно дело администратором в хостинговой компании или веб-студии и совсем другое бумагу в принтер заправлять.
    Ответ написан
    Комментировать
  • Что означают в пути числа начинающиеся с символа решётки?

    @abcd0x00
    >>> b'\320\237\321\200\320\260\320\262\320\276\320\262\321\213\320\265'.decode('utf-8')
    'Правовые'
    >>>
    Ответ написан
    5 комментариев
  • Какую литературу следует прочитать для обучения по работе с cisco и сетевому администрированию?

    @Ciscoridze
    Ещё раз скажу про СДСМ, т.к. считаю, что это одно лучших вариантов, которые можно предпочесть.
    Если говорить о бумажном варианте, то стоит взять цисковские материалы по подготовке к сдаче CCNA, авторы Wendell Odom.
    Также можно взять ICND1 и ICND2 и прочитать их, это тоже цисковские руководства по подготовке к экзаменам. Параллельно с прочтением делать лабораторные в GNS3, UNETLAB или Packet Tracet
    Ответ написан
    Комментировать
  • Вставка данных в таблицу PostgresSQL заканчивается ошибкой?

    terrier
    @terrier
    INSERT INTO ABresult VALUES (AplusB.A+AplusB.B);

    ERROR: missing FROM-clause entry for table "aplusb"

    Совершенно справедливо хочет увидеть FROM:

    INSERT INTO ABresult ( result )
    SELECT A + B FROM AplusB;

    Бросьте вы этот ваш линуксформат ...
    Ответ написан
    1 комментарий
  • Как правильно написать вполнения условия на определённых итерациях цикла в С++?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Быть может вы имели в виду
    if ( i==3 && (j==2 || j==3 || j==4) && k==4 ) {
        // ...
    }
    Ответ написан
    1 комментарий
  • Можно ли считать константный указатель аналогом ссылки в С++?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Нет, но разница более существенная, чем возможность присвоить nullptr. Константной ссылкой можно удлинить время жизни временного объекта, а указателем -- никаким нельзя.
    Например так можно:
    T f();
    ...
    const T& obj = f();
    obj.foo();

    -- объект вернувшийся из функции f не будет разрушен до выхода obj из области видимости.

    А так -- нельзя:
    T f();
    ...
    const T* const obj = &(f());
    obj->foo();

    -- этот код даже не скомпилируется, поскольку тут берётся адрес временного объекта.
    Ответ написан
    Комментировать
  • Как работает многозначный хеш?

    vaut
    @vaut
    Именно по этой структуре.
    push принимает два аргумента, массив (@{$ttys{$user}}) и значение которое добавляет ($tty)

    что за зверь @{$ttys{$user}}?
    $ttys{key}означает что работаем с скаляром соответствующим ключу key
    @{$ref}получение масива по ссылке.
    Вместе получается так: взять из хеша ttys значение по ключу $user и разыменовывать полученную ссылку как массив.

    Для изучения перла можно почитать верблюда или если это слишком много ламу (shop.oreilly.com/product/9780596000271.do и shop.oreilly.com/product/9781565920422.do) А именно такие сложные структуры хорошо описаны в shop.oreilly.com/product/0636920012689.do
    Ответ написан
    1 комментарий
  • Как работает многозначный хеш?

    @krypt3r
    Мне в свое время разобраться с такими структурами на начальной стадии помогла книга "Perl. Специальный справочник" С. Холзнера.
    И, кстати, код у вас неважнецкий. Сравните с таким:
    #!/usr/bin/env perl
    
    use strict;
    use warnings;
    use Data::Dumper;
    
    my %ttys;
    open my $WHO, '-|', '/bin/who' or die "open() error: $!\n";
    while (<$WHO>) {
        my ($user, $tty) = split;
        push @{$ttys{$user}}, $tty;
    }
    close $WHO;
    #print Dumper(\%ttys);
    foreach my $user (sort keys %ttys) {
      print "$user: @{$ttys{$user}}\n";
    }
    Ответ написан
  • Какие есть интересные книги по математике?

    Sergei_Erjemin
    @Sergei_Erjemin
    Улыбайся, будь самураем...
    Практически художественная детско-приключенческая литература по математике для 4-5 классов -- "Три дня в Карликании" и "Черная маска из Аль-Джебры". Ну прочее Владимира Левшина.

    И еще книги Якова Перельмана: "Занимательная Алгебра", "Занимательная Математика", "Занимательная Арифметика", "Физика на каждом шагу" и т.п. Их наши дедушки читали с увлечением, и правильно делали (ссылка для справки)... Сейчас много новых изданий, но в детстве я читал растрепанные издания 40-х, 50-х и 60-х... захватывающее чтение!

    Для более продвинутых в математике, проверенная классика моего детства -- книги Мартина Гарднера (иногда с соавторами): "Математические досуги" (1972), "Крестики-нолики" (1988), "Математические новеллы" (1974), "Математические чудеса и тайны" (1982)... К счастью Мартина Гарднера иногда переиздают до сих пор.

    Для совсем увлеченных очень классные были "Библиотечки КВАНТ". В букинистических стоят копейки. А реально офигительные!
    Ответ написан
    Комментировать