From 7de356fa8579e4d0d014dfde0829a49ecc0b43b5 Mon Sep 17 00:00:00 2001 From: aixiao Date: Thu, 31 Oct 2024 14:54:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=85=AC=E5=85=B1=E5=87=BD?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cap.c | 5 ++- cap.o | Bin 37120 -> 37080 bytes common.c | 115 +++++++++++++++++++++++++++++++++++++++---------------- common.h | 3 +- common.o | Bin 19888 -> 21776 bytes denyip | Bin 72600 -> 73184 bytes 6 files changed, 87 insertions(+), 36 deletions(-) diff --git a/cap.c b/cap.c index 9d83bbc..1e09431 100644 --- a/cap.c +++ b/cap.c @@ -344,10 +344,11 @@ int main(int argc, char **argv) snprintf(RULE_NAME, BUFFER, "root%d", RULE_NAME_NUMBER); if (create_ipset(RULE_NAME) != 0) { - fprintf(stderr, "创建 IPSet %s 失败\n", RULE_NAME); + _printf("创建 IPSet %s 失败\n", RULE_NAME); } - while (1) { + while (1) + { _printf("子进程当前 Ipset Rule 名 %s\n", RULE_NAME); count = get_ip_count_in_ipset(RULE_NAME); diff --git a/cap.o b/cap.o index 10ea2f4e0b402660544c4479f8171970fe5d4453..01d3e93ca7f74a34e65b3218d5a92f1166f9b07b 100644 GIT binary patch delta 1791 zcmZ8ieP~-%6o2O>T@#n2Nh`Z~>pB;!G_o%{rv0PZnAW*=>(IfN%dqWU)28b-HmLS0aoInz)I^2f1BHL-yYVA@>3;{ zx2DC=($y8+;ColowER*{gH{)X%@iuMQo^)Ar7Iwlb22%HTdOM{1s^S=RKVsfkvvhR zG=!70KB>;RpbGcZybUwBP_qUOS}USgOZ0pQYu7DL zq!SMW-_e`=OI%^Euhc_S1MiNy@u{Y-A#B}i>Tr{0qWMoK#laQn zn`t`CN}Navvzld_S$3_B%M;>0>lrS6K3GD5Ml;jlKA)FW;6;pd38S6u<(^Zxy-UEW zl8Jk}e0U(~GlrR73+X$qPb$|RvMhIfmQ~=crx`9?Z?IjTXFA;V1$lB%z<9TSYpR1A zs)Jihhj*}`I?xbO0(@BL7KRa$r&2uiE%fX7e?)T3H7v{hKWXEOPyK0zOaCv}{bkF~|!88pZ0;0Mf%#b5+y zDegyOJf{C0$KB%%y3r{ABrrQ3r5kdV@VmpfJl#Nr66qLSotbpZd+KOW>Kx9GKJ*`H C^9Sev delta 1687 zcmZ`(ZD?Cn7`|_kwu?>D#@d`*g)Ln-62CUHRm$)qrmePt%7_+!Y;H~3v}MD}ZrvZz zvQ?c-YujWG%x+AvvZ0_zulI)=3|$3b7E$LAiVQ|&Is}zP=C`8nIlaL{WCzZB&wZcg zJm)#@IrlEjdG^2VDJE#Yee;b$dLLcEE^~d)WV6AoXR<~;rh@A6!l&5R7;)x=rAWgtTzl&Awm3FbINZRb&}mQN&!i@Bnc9uZZBtz zS_z5FSZi~G2r$~q=nBP|ZC&uvI&6zS$8ImiZ=+Eskoc^|vlvFph6o*YuHHW7 z^?KGvoM)5A8WHQb(6o-1HPWHR=RKXlTJIWvpl%g&O(Z(cP~7>hv){*pnVw(iH&_n{ zGLX&)im13+M(4H6E>Gx*y@jE%F=Keo*sjO-4rBDLC}O=)r@Pk{58&;5fbPIK&TWy=>~`l> z>iUCwB7JfOZAWroBR!`0N04WY;y{$%Kxsgjjy6;Ga~2DXet8W)7cj@GUeeGuc3s)~ z&r+E}pdop!vxCz4GRIpmF(}NoMzzKN-Q5n@jBa(&>Iys}70jI)dZ)JH5W)o!9M#Y^ zJXjF;elS1>l#e2;f}mr{$8qK3ooo0wjdKNIeynNfU(DxH&0NyZ&6nWmuSfE?Qm3?Z^%b8bo+R z&~BwR28+i}!sh%0(mXzdWgZ_<%sIt;Q=#(;eNWB$z_CU)M*Q>cMdRx-F3fNE_bS_U z+~t4w>s9j2F#beoTsT+8b3WSYWS<%F(;`kyw)Iz_L*=J+(q(tm_year), (1 + p->tm_mon), p->tm_mday, wday[p->tm_wday], p->tm_hour, p->tm_min, p->tm_sec); + if (!p) { + perror("localtime failed"); + return NULL; + } - return strdup(temp); + snprintf(temp, sizeof(temp), "[%d/%02d/%02d %s %02d:%02d:%02d]", + 1900 + p->tm_year, 1 + p->tm_mon, p->tm_mday, + wday[p->tm_wday], p->tm_hour, p->tm_min, p->tm_sec); + + return temp; // 返回静态缓冲区地址 } int is_valid_ip(const char *ip) @@ -152,22 +150,73 @@ int is_valid_ip(const char *ip) return result != 0; } -int _nice(int increment) -{ +int _nice(int increment) { + // 获取当前优先级 int oldprio = getpriority(PRIO_PROCESS, getpid()); - printf("%d\n", oldprio); + if (oldprio == -1 && errno != 0) { + perror("getpriority failed"); + return -1; + } - return setpriority(PRIO_PROCESS, getpid(), oldprio + increment); + printf("Current priority: %d\n", oldprio); + + // 检查是否溢出 + if ((increment > 0 && oldprio > INT_MAX - increment) || + (increment < 0 && oldprio < INT_MIN - increment)) { + fprintf(stderr, "Priority overflow error\n"); + return -1; + } + + // 计算新的优先级 + int newprio = oldprio + increment; + + // 检查新的优先级是否在有效范围内 + if (newprio < PRIO_MIN || newprio > PRIO_MAX) { + fprintf(stderr, "New priority out of range: %d (valid range is %d to %d)\n", newprio, PRIO_MIN, PRIO_MAX); + return -1; + } + + // 设置新的优先级 + if (setpriority(PRIO_PROCESS, getpid(), newprio) == -1) { + perror("setpriority failed"); + return -1; + } + + printf("New priority: %d\n", newprio); + return 0; } // 判断命令是否存在 -int _command_exists(const char *command) -{ - char buffer[BUFFER]; - snprintf(buffer, sizeof(buffer), "%s > /dev/null 2>&1", command); - int status = system(buffer); +int command_exists(const char *command) { + const char *path_env = getenv("PATH"); + if (!path_env) { + return 0; // 如果 PATH 不存在,返回不存在 + } - return (status == 0); + char filepath[1024]; // 缓冲区大小 + const char *dir = path_env; + + while (dir && *dir) { + // 查找 PATH 中的下一个目录 + const char *end = strchr(dir, ':'); + size_t len = end ? (size_t)(end - dir) : strlen(dir); + + // 构建路径并检查长度 + if (snprintf(filepath, sizeof(filepath), "%.*s/%s", (int)len, dir, command) >= (int)sizeof(filepath)) { + return 0; // 缓冲区溢出,返回不存在 + } + + // 检查文件是否存在且可执行 + if (access(filepath, X_OK) == 0) { + puts(filepath); + return 1; // 命令存在 + } + + // 更新 dir 指针 + dir = end ? end + 1 : NULL; + } + + return 0; // 命令不存在 } // 定义一个函数,执行命令并返回输出 diff --git a/common.h b/common.h index d77bfbe..338e5d2 100644 --- a/common.h +++ b/common.h @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -28,7 +29,7 @@ extern char *_time(); -extern int _strlen(char *str); +extern int _strlen(const char *str); extern void _printf(const char *format, ...); extern int _nice(int increment); diff --git a/common.o b/common.o index 1ae80246bc413cb94c59091a005fbe4fda9a0c09..fe67c2c4ecfdc36f6c7a4b19dd573fe0b4c0d40f 100644 GIT binary patch literal 21776 zcmbt+3z(F}m3H-|n4W9*+;E1QjWEKXa{&^Y}Sef>=_ zz5DF5_0V6{dF#}vQ>RW{zi-$XSaYq@;Sf4F#B!0RG%CcN8}jKkO16o~qE>7O4jm5; zobm^Uwx0+NY(F7#MTao^V&NBR;E`t2e8qjpyaoCb$JEwaV;Za<5xJ3gS1>>;;e+fSg>dYf<@fO(~^IX_2@(D7zg z2AHV!uTNO}nW5Z=!J!Q&h65iC9CkqeX#e5yKjfpf4U1sDQI`R8Ffyt$hS#34wOye; zWZ4fEJu1ZbCa<#`F>pAad^MjO%_rZ=C&%*16Zz!nalL;C=8Hr52Eddxu>Fk4O}6-z z>#N!BFF?^V!;9&ea#IxaP}Eijnh)Q6RUOo4*U)ZwbjU;A|Yo2`bA7(AS<&nrRTA(&mxz2^qE1Wy{W%|iK^ZeaT< zv7;OrcU}@WwIpzMXEj3oOOa)lg0?pWhk1^C>DfBKUqDBnu&(`(F}&gIaNv|<6c!Qa zj8peaf@jT+R+cfm;mnFdI1@i}3MvhbTn@?clP_s~@@VplUe)FYwh4mALtc|9Lc^AT}5*muhtPRrOeNx z7RD%eJ5P=5?KBTvPAffY1q1!0q$XiYXpm&Rpw$_g{=9D}axM;minP zt%}i;FZwT(B*jkBMD^MaLA`>ZVPjK6Z&O3m-w<5duy$#~P2%>3%$ViabUK+XQ59Vu>$CX%$z0Z-?DVI@iLMwH_RrlC?ukbg;E#h6 zQEXg8w6R2F&adAti|bx-b5Jxi&&#wlWJFq|&@3Vy3->^)MJm#h%*4c%uoIKQ;X!@s z@i84A_V7w^p2Dq)aQ^H9oF9rkuwDp3kZbPLwUC~Iz%B4A>x2jXDv(o%sraaKi!Vdu z#WW`JDK}w{0pzh#K2hwZ3Z{9=F{fDRSnSN#DjRCiYldNs(;7AAFab;is!%-QxZH_JmldHHCKeTA36ILTf(V}?786mYh$Te$6|t0vxr(@wh*m``BVw^4 zt|FpM5p6^S6|sVdb&B{D5gm$HIr%+EY*NIvHU9>QZbbx1>y#qeiO4EqRq1~~bG9mC zZ53L0mm;qBVn^&�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 YlR#LrUn9w;vD&9ElkEpJy?Xoq0snSl$p8QV diff --git a/denyip b/denyip index 072267f8b2bbe4fde5f679b7d0377a1aabf95a86..5a97a6722e49b0f8beb9ba06927d702f0e289d58 100644 GIT binary patch delta 18597 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 h=o+mFYi)B`RKg{!W@`v*_J5iUs@?zq delta 17484 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