Привязка по IP
|
|
4atty
|
Дата: Пятница, 11.09.2015, 23:29:04 | Сообщение # 1 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 21
Репутация: 0 [ +/- ]
|
|
Всем привет, подскажите пожалуйста, как сделать привязку именно по IP адресу без порта. Чтобы плагин работал только на этом IP 11.111.11.111 на всех портах, на 22.222.22.222 чтобы не работал)
|
|
| |
pro-health
|
Дата: Суббота, 12.09.2015, 07:10:04 | Сообщение # 2 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 188
Репутация: 5 [ +/- ]
|
|
http://world-source.ru/forum/102-2275-1
|
|
| |
BarD
|
Дата: Суббота, 12.09.2015, 12:46:33 | Сообщение # 3 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 943
Репутация: 137 [ +/- ]
|
|
Код public OnPluginStart() { ////////////////////////////////////////////////////////
// на каком должен работать new const String:IP_SERVER[] = "1.2.3.4";
/////////
new Handle:h_IP = FindConVar("hostip");
if (h_IP == INVALID_HANDLE) { SetFailState("h_IP == INVALID_HANDLE"); return; }
new hostip = GetConVarInt(h_IP); new ip1 = hostip >>> 24 & 255; new ip2 = hostip >>> 16 & 255; new ip3 = hostip >>> 8 & 255; new ip4 = hostip & 255;
decl String:current_ip[75]; Format(current_ip, 75, "%d.%d.%d.%d", ip1, ip2, ip3, ip4); if (strcmp(current_ip, IP_SERVER, false) != 0) { SetFailState("\nYour server: %s. Plugin for: %s", current_ip_port, IP_PORT); }
//////////////////////////////////////////////////////// } Держи. Переделал код wS'а.
|
|
| |
Jon4ik
|
Дата: Суббота, 12.09.2015, 14:49:57 | Сообщение # 4 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 278
Репутация: 7 [ +/- ]
|
|
4atty,
SetFailState("\nYour server: %s. Plugin for: %s", current_ip_port, IP_PORT); поправь на current_ip
и IP_PORT вроде на IP_SERVER надо изменить
Сообщение отредактировал Jon4ik - Суббота, 12.09.2015, 14:50:53 |
|
| |
4atty
|
Дата: Суббота, 12.09.2015, 16:34:30 | Сообщение # 5 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 21
Репутация: 0 [ +/- ]
|
|
Jon4ik, спасибо. Все получилось)
|
|
| |
BarD
|
Дата: Воскресенье, 13.09.2015, 08:35:24 | Сообщение # 6 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 943
Репутация: 137 [ +/- ]
|
|
Цитата 4atty ( ![Ссылка на цитируемый текст](http://s9.ucoz.net/img/fr/ic/2/lastpost.gif) ) Проверил, выдает ошибку при компиляции, вот скрин
Цитата Jon4ik ( ![Ссылка на цитируемый текст](http://s9.ucoz.net/img/fr/ic/2/lastpost.gif) ) поправь на current_ip и IP_PORT вроде на IP_SERVER надо изменить
Да, не заметил) Извините :)
|
|
| |
Jon4ik
|
Дата: Воскресенье, 13.09.2015, 11:50:57 | Сообщение # 7 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 278
Репутация: 7 [ +/- ]
|
|
Мне кажется лучше делать вообще так:
Код #define plugin "myplugin" public OnPluginStart() { ////////////////////////////////////////////////////////
// на каком должен работать new const String:IP_SERVER[] = "1.2.3.4";
/////////
new Handle:h_IP = FindConVar("hostip");
if (h_IP == INVALID_HANDLE) { SetFailState("h_IP == INVALID_HANDLE"); return; }
new hostip = GetConVarInt(h_IP); new ip1 = hostip >>> 24 & 255; new ip2 = hostip >>> 16 & 255; new ip3 = hostip >>> 8 & 255; new ip4 = hostip & 255;
decl String:current_ip[75]; Format(current_ip, 75, "%d.%d.%d.%d", ip1, ip2, ip3, ip4); if (strcmp(current_ip, IP_SERVER, false) != 0) { LogError("\nYour server: %s. Plugin for: %s", current_ip, IP_SERVER); ServerCommand("sm plugin unload %s",plugin); }
//////////////////////////////////////////////////////// } т.к SetFailState выдает ошибки в логи какие то, а так в еррор логах будет только: Your server: 123456. Plugin for: 1259
Сообщение отредактировал Jon4ik - Воскресенье, 13.09.2015, 11:51:41 |
|
| |
BarD
|
Дата: Воскресенье, 13.09.2015, 12:04:39 | Сообщение # 8 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 943
Репутация: 137 [ +/- ]
|
|
Jon4ik, ну, можно и так.
Сообщение отредактировал BarD - Воскресенье, 13.09.2015, 12:05:17 |
|
| |
TEIN
|
Дата: Воскресенье, 13.09.2015, 15:47:12 | Сообщение # 9 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
выгружать по имени плагина - плохой способ, т.к. его можно изменить банально, ну а на счет ошибок - так это не проблема, сервер, которому предназначен данный плагине увидит ошибок
Сообщение отредактировал TEIN - Воскресенье, 13.09.2015, 15:48:00 |
|
| |
Jon4ik
|
Дата: Воскресенье, 13.09.2015, 16:07:11 | Сообщение # 10 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 278
Репутация: 7 [ +/- ]
|
|
TEIN, вроде где то писали если сделать так
#define plugin "myplugin"
и потом так ServerCommand("sm plugin unload %s",plugin);
изменение имени не поможет
Сообщение отредактировал Jon4ik - Воскресенье, 13.09.2015, 16:07:27 |
|
| |
Scarface_slv
|
Дата: Воскресенье, 13.09.2015, 16:30:28 | Сообщение # 11 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 737
Репутация: 61 [ +/- ]
|
|
Jon4ik, а не так? Код decl String:text[45]; GetPluginFilename(GetMyHandle(), text, 45); ServerCommand("sm plugin unload %s", text);
|
|
| |
Jon4ik
|
Дата: Понедельник, 14.09.2015, 20:36:02 | Сообщение # 12 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 278
Репутация: 7 [ +/- ]
|
|
Scarface_slv, Можно и так наверное)
|
|
| |