const allowedIPs = ['192.168.1.1', '10.0.0.2'];
const server = http.createServer((req, res) => {
const clientIP = req.connection.remoteAddress;
if (allowedIPs.includes(clientIP)) {
// Обработка запроса
} else {
res.statusCode = 403;
res.end('Доступ запрещен');
}
});
$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
// Выбери все таблицы без вложенных таблиц
$tables = $xpath->query('//table[not(.//table)]');
foreach ($tables as $table) {
$div = $doc->createElement('div');
$table->parentNode->replaceChild($div, $table);
$div->appendChild($table);
}
$html = $doc->saveHTML();
/set-cookie:\s*csrftoken=([^;]+)/i
$login = 'set-cookie: sessionid=fdsfwg345454543gfdgfdgfda; Domain=.instagram.com; expires=Sat, 02-Mar-2024 14:25:29 GMT; HttpOnly; Max-Age=31536000; Path=/; Secure set-cookie: ds_user_id=5222217854; Domain=.instagram.com; expires=Thu, 01-Jun-2023 14:55:29 GMT; Max-Age=7776000; Path=/; Secure set-cookie: csrftoken=Customvalue54543gfdgfdgfda; Domain=.instagram.com; expires=Fri, 01-Mar-2024 14:25:29';
preg_match_all('/set-cookie:\s*csrftoken=([^;]+)/i', $login, $match);
// Выводим найденное значение
echo $match[1][0];
interface WwCodes {
[key: number]: string;
}
const wwCodes: WwCodes = {
0: 'Clear sky',
1: 'Mainly clear',
2: 'Partly cloudy',
3: 'Overcast',
45: 'Fog',
};
const [wwCode, setWwCode] = useState<number>(0);
<span>{wwCodes[wwCode]}</span>
function getChannelName() {
// Задаем ID канала
var channelId = 'UCBR8-60-B28hp2BmDPdntcQ';
// Выполняем запрос к API YouTube
var request = gapi.client.youtube.channels.list({
id: channelId,
part: 'snippet'
});
// Обрабатываем результаты запроса
request.execute(function(response) {
// Получаем название канала
var channelName = response.items[0].snippet.title;
// Отображаем название канала в сообщении
alert('Название канала: ' + channelName);
});
}
import requests
import json
# Получаем HTML-код страницы
url = 'https://www.geooptic.ru/product/lasernyi-skanner-trimble-x7-kit-with-t10x'
response = requests.get(url)
html = response.content
# Ищем строку с информацией о файлах
start = 'files:['
end = '],'
start_index = html.index(start) + len(start)
end_index = html.index(end, start_index)
files_str = html[start_index:end_index]
# Извлекаем информацию о файлах
files_info = json.loads('[' + files_str + ']')
# Выводим результат
for file_info in files_info:
print(f"{file_info['name']} : {file_info['file_name']}")
import requests
from bs4 import BeautifulSoup
import re
# Получаем HTML-код страницы
url = 'https://www.geooptic.ru/product/lasernyi-skanner-trimble-x7-kit-with-t10x'
response = requests.get(url)
html = response.content
# Ищем строку с информацией о файлах
pattern = re.compile(r'files:\[(.*)\]')
match = pattern.search(str(html))
if match:
# Извлекаем информацию о файлах
files_info = match.group(1)
# Создаем объект BeautifulSoup
soup = BeautifulSoup(files_info, 'html.parser')
# Находим все элементы 'file_name' и 'name'
file_names = soup.find_all('file_name')
names = soup.find_all('name')
# Выводим результат
for file_name, name in zip(file_names, names):
print(f"{name.text.strip()} : {file_name.text.strip()}")
from bs4 import BeautifulSoup
html = '''
<input id="ctl00_ContentPlaceHolder1_grdProducts_ctl00_ctl05_EditFormControl_tbValidityPeriod"/>
<input id="ctl00_ContentPlaceHolder1_grdProducts_ctl00_ctl07_EditFormControl_tbValidityPeriod"/>
<input id="ctl00_ContentPlaceHolder1_grdProducts_ctl00_ctl09_EditFormControl_tbValidityPeriod"/>
<input id="ctl00_ContentPlaceHolder1_grdProducts_ctl00_ctl11_EditFormControl_tbValidityPeriod"/>
'''
soup = BeautifulSoup(html, 'html.parser')
inputs = soup.select('input[id^="ctl00_ContentPlaceHolder1_grdProducts_ctl00_ctl"]')
for inp in inputs:
print(inp['id'])
ctl00_ContentPlaceHolder1_grdProducts_ctl00_ctl05_EditFormControl_tbValidityPeriod
ctl00_ContentPlaceHolder1_grdProducts_ctl00_ctl07_EditFormControl_tbValidityPeriod
ctl00_ContentPlaceHolder1_grdProducts_ctl00_ctl09_EditFormControl_tbValidityPeriod
ctl00_ContentPlaceHolder1_grdProducts_ctl00_ctl11_EditFormControl_tbValidityPeriod
SELECT * FROM default WHERE JSON_CONTAINS(properties, '["da051ec8-da2e-4a66"]', '$.FiasAoguid');
ALTER TABLE `default` ADD COLUMN `FiasAoguid_array` json GENERATED ALWAYS AS (`properties` -> '$.FiasAoguid'),
ADD INDEX `FiasAoguid_index` (`FiasAoguid_array`);
SELECT * FROM default WHERE JSON_CONTAINS(FiasAoguid_array, '["da051ec8-da2e-4a66"]')
@bot.on.message(state=SuperStates.CONFIDENT_STATE)
async def confident_handler(message: Message):
keyboard = Keyboard()
keyboard.add(Text("меню", {"cmd": 'menu'}))
name = ctx.get("name")
if ctx.get("notified_manager") is None:
ctx.set("notified_manager", True)
await message.answer(f"Сейчас с вами свяжется менеджер", keyboard=keyboard)
else:
await message.answer(f"Вы уже обратились к менеджеру", keyboard=keyboard)
// Проверяем, есть ли значение времени в localStorage
if (!localStorage.getItem('savedTime')) {
// Если нет, то сохраняем текущее время
localStorage.setItem('savedTime', new Date().getTime());
}
// Устанавливаем интервал, который будет запускаться каждые 30 минут
setInterval(function() {
// Получаем сохраненное значение времени из localStorage
const savedTime = localStorage.getItem('savedTime');
// Проверяем, прошло ли 30 минут с момента сохранения времени
if (new Date().getTime() - savedTime >= 30 * 60 * 1000) {
// Если прошло, то обновляем данные
updateData();
// Сохраняем новое значение времени в localStorage
localStorage.setItem('savedTime', new Date().getTime());
}
}, 30 * 60 * 1000); // интервал в миллисекундах (30 минут)
Для вычисления общего времени передачи данных нужно сложить времена передачи каждого компьютера:
1 + 2 + 11 + 21 + 46 + 5 + 17 = 103
Теперь мы знаем, что общее время на передачу данных в одну сторону составляет 103 единицы времени.
Для определения общего времени на передачу данных в обе стороны нужно умножить это число на 2:
103 * 2 = 206
Таким образом, передача данных завершится через 206 единиц времени.