Получить MAC-адрес клиентского запроса?

Вы не говорили, хотите ли вы сохранить эти проблемные имена файлов. Одно решение может быть «исправить» проблему один раз и для всех, переименовав (Некоторые или все) ваши файлы на имена, которые вы можете ввести, запустив этот скрипт:

#!/bin/sh
for old in *
do
      printf "%s ...? " "$old"
      if read new  &&  [ "$new" != "" ]
      then
             mv -i "$old" "$new"
      fi
done

Это перечисляет ваши существующие имена файлов, каждый из которых следует ...? . Просто введите Введите , чтобы оставить файл как есть; или введите новое имя, чтобы переименовать его. Вариант -I заставит его попросить вас подтвердить перезапись Если вы укажете имя другого существующего файла.

Этот скрипт может быть изменен несколькими способами:

  • Вы можете изменить подстановочный знак ( * ) к чему более ограничительно, E.G., *. AVI * .mov , поэтому вам не нужно смотреть на каждый файл.
  • Вы можете изменить MV на CP , Таким образом, вы сохраняете копию файла с его текущим именем и создать (временную?) Копировать с типом именем.
  • Вы можете создать новое имя файла, основанное на существующем именем файле. Например,

     если прочитать PFX && [«$ PFX»! = ""]
    тогда
      MV -I «$ старый» "$ pfx $ alt"
    фигурировать
     

    , который позволяет ударить префикс перед старым именем. Если вы выбрали уникальный префикс, это позволит вам использовать Auto-Complete.

0
02.06.2015, 01:13
3 ответа

- это ваш сервер хост Linux?

Если у вас есть белый список ваших клиентов, вы можете использовать iptables , чтобы принять запросы только от них на определенные входные порты Отказ Вы также можете воспользоваться запросами от Bach Clients в DMESG.

Следующий скрипт определяет MACCHECK цепь, чтобы принять пакеты из одобренных 3 Mac, и бросить других с помощью журнала. Затем маршруты все пакеты TCP / 80 или TCP / 443 в входной цепочки MACCHECK .

iptables -N MACCHECK
iptables -A MACCHECK -m mac --mac-source xx:xx:xx:xx:xx:xx -j ACCEPT
iptables -A MACCHECK -m mac --mac-source yy:yy:yy:yy:yy:yy -j ACCEPT
iptables -A MACCHECK -m mac --mac-source zz:zz:zz:zz:zz:zz -j ACCEPT
iptables -A MACCHECK -m limit --limit 3/hour -j LOG --log-prefix "Bad host: "
iptables -A MACCHECK -j DROP
iptables -A INPUT -p tcp -m tcp --dport 80 -j MACCHECK   # Checking all HTTP requests
iptables -A INPUT -p tcp -m tcp --dport 443 -j MACCHECK  # Checking all HTTPS requests

Обратите внимание, что все ваши клиенты должны быть в одной сети, что и ваш сервер.

2
28.01.2020, 02:15

Функцию можно определить в любом месте. Чтобы связать в цепочку другую функцию, просто вызовите ее с теми же параметрами.

redefine_git_prompt_info () {
  git_prompt_info () { branch_name_only_git_prompt_info "$@"; }
}

Если branch _ name _ only _ git _ prompt _ info будет позднее переопределен, вызов redefine _ git _ prompt _ info вызовет новое определение. Если требуется скопировать текущее определение в zsh, это можно легко сделать с помощью функций массива .

redefine_git_prompt_info () {
  functions[git_prompt_info]=$functions[branch_name_only_git_prompt_info]
}
-121--90831-

Или используйте cut:

TIMESTAMP=$( stat -c "%y" $JARNAME.jar | cut -d. -f1 )
print $TIMESTAMP
-121--77432-

MAC-адрес клиента можно проверить только в том случае, если клиент находится в одном сетевом сегменте, т.е. если между ними нет маршрутизатора (коммутатор в порядке). Вы можете видеть, что с traceroute: если вы запустите traceroute 192,0,2,1 с сервера, где 192,0,2,1 является адресом одного из устройств, он должен сообщить только один прыжок, назначения. Ответы Маши и яэгаси объясняют, как это можно сделать.

Однако, даже если это возможно, проверка MAC на самом деле не обеспечивает никакой безопасности, потому что MAC можно легко подделать. Большинство устройств Ethernet могут иметь свой MAC-адрес в программном обеспечении.

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

Поскольку вы, очевидно, используете веб-приложение, для этого существует средство: сертификат клиента TLS . Используйте протокол HTTPS, а клиент использует свой закрытый ключ для проверки подлинности на веб-сервере.

Хотя в зависимости от того, как вы используете эту VPN, она может (или не может) обеспечить аналогичную возможность.

2
28.01.2020, 02:15

Если есть прямое связь между вашим Raspberry Pi и клиентом, т. Е. Нет маршрутизации и Оба в одном ] сегмент , это возможно. Просто используйте разрешение ARP, например, : ARP .

2
28.01.2020, 02:15

Теги

Похожие вопросы