- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Tôi có một vấn đề nhỏ. Tôi chỉ muốn ghi vào tệp nếu chuỗi/từ tương tự mà tôi đang cố viết không tồn tại. Trong trường hợp của tôi, đó là địa chỉ IP và cổng, được phân tách bằng dấu ://. Nếu tôi ghi thủ công vào tệp, hãy nói 193...:80 và 193...:22, hướng dẫn họ nhưng vẫn ghi vào tệp. Sai lầm của tôi ở đâu:
#ifdef GỠ LỖI
#define INITIAL_ALLOC 2
#else
#define INITIAL_ALLOC 512
#endif
void BlockIP(char *s);
char *read_line(FILE *fin);
void *right_line(int p,char * s,int ssh,int http);
int main(int argc, char const *argv[])
{
//struct uci_context *uci;
//uci = uci_init();
char *ip = "193.2.2.1 193.2.6.6 193.168.1.1 193.5.5.5"
//int uci_port = atoi(ucix_get_option(uci, "pack_mon", "manual_blocking", "port"));
const char s[2] = " ";
mã thông báo char *;
mã thông báo = strtok(ip, s);
while(mã thông báo != NULL )
{
BlockIP(mã thông báo);
mã thông báo = strtok(NULL, s);
}
return(0);
}
void BlockIP(char *s){
int ssh = 22;
int http = 80;
char sshbuffer[2000]= "\0";
char httpbuffer[2000]= "\0";
char cmd2[2000] = "\0";
char cmd[2000] = "\0";
snprintf(cmd, sizeof(cmd),"iptables -I INPUT 1 -p tcp -s %s --dport 80 -j REJECT",s);
snprintf(cmd2, sizeof(cmd2),"iptables -I INPUT 1 -p tcp -s %s --dport 22 -j REJECT",s);
snprintf(sshbuffer, sizeof(sshbuffer),"%s:%d", s,ssh);
snprintf(httpbuffer, sizeof(httpbuffer),"%s:%d", s,http);
TẬP TIN *fp,*ft;
fp = popen(cmd, "r");
pclose(fp);
ft = popen(cmd2, "r");
pclose(ft);
TẬP TIN *vây;
dòng char *;
vây = fopen("/tmp/mymonlog", "r");
nếu (vây) {
trong khi ( line = read_line(fin) ) {
if (strstr(line, sshbuffer)){
printf("Đã tồn tại %s\n",line);
}khác{
right_line(1,s,ssh,http);
}
if(strstr(line, httpbuffer)){
printf("Đã tồn tại %s\n",line);
}khác{
right_line(2,s,ssh,http);
}
miễn phí(dòng);
}
}
fclose(vây);
}
char *read_line(FILE *fin) {
bộ đệm char *;
char *tmp;
int read_chars = 0;
int bufsize = INITIAL_ALLOC;
char *line = malloc(bufsize);
nếu ( !line ) {
trả về NULL;
}
đệm = dòng;
while ( fgets(buffer, bufsize - read_chars, fin) ) {
read_chars = strlen(dòng);
if (line[read_chars - 1] == '\n' ) {
dòng[read_chars - 1] = '\0';
đường trở về;
}
khác {
bufsize = 2 * bufsize;
tmp = realloc(line, bufsize);
nếu(tmp){
dòng = tmp;
bộ đệm = dòng + read_chars;
}
khác {
miễn phí(dòng);
trả về NULL;
}
}
}
trả về NULL;
}
void *right_line(int p,char * s,int ssh,int http){
TẬP TIN *pFile,*tFile;
nếu(p==1){
pFile=fopen("/tmp/mymonlog", "a");
if(pFile==NULL) {
perror("Lỗi khi mở file.");
}else {
fprintf(pFile, "%s:%d\n", s,ssh);
}
fclose(pFile);
}khác nếu(p == 2){
tFile=fopen("/tmp/mymonlog", "a");
if(tFile==NULL) {
perror("Lỗi khi mở file.");
}
khác {
fprintf(tFile, "%s:%d\n", s,http);
}
fclose(tFile);
}
}
câu trả lời hay nhất
Lý do nó vẫn ghi vào tệp là do bạn đang kiểm tra từng dòng tệp.
Giả sử tệp của bạn có:
193.2.2.1:22
193.2.2.1:80
và bạn muốn kiểm tra 193.2.2.1:22
Và 193.2.2.1:80
đầu tiên bạn đọc193.2.2.1:22
行
strstr("193.2.2.1:22", "193.2.2.1:22")
Điều này phù hợp, vì vậy nó不会Viết vào tập tin.
sau đó bạn làm điều này
strstr("193.2.2.1:22", "193.2.2.1:80")
cái nàyKHÔNGtrùng khớp, vậy nên nóSẽViết vào tập tin.
Sau đó bạn đọc dòng tiếp theo từ tập tin 193.2.2.1:80
并执行
strstr("193.2.2.1:80", "193.2.2.1:22")
cái nàyKHÔNGtrùng khớp, vậy nên nóSẽViết vào tập tin.
sau đó bạn làm
strstr("193.2.2.1:80", "193.2.2.1:80")
Điều này phù hợp, vì vậy nó不会Viết vào tập tin.
Bây giờ tập tin của bạn là:
193.2.2.1:22
193.2.2.1:80
193.2.2.1:80
193.2.2.1:22
Tóm lại:
Đừng kiểm tra từng dòng một. Trước khi quyết định ghi vào file, bạn cần kiểm tratất cả行。
Một sửa chữa đơn giản có thể là thế này:
int save_ssh = 1;
int save_http = 1;
nếu (vây) {
trong khi ( line = read_line(fin) ) {
if (strstr(line, sshbuffer)){
printf("Đã tồn tại %s\n",line);
save_ssh = 0;
}
if(strstr(line, httpbuffer)){
printf("Đã tồn tại %s\n",line);
lưu_http = 0;
}
miễn phí(dòng);
}
fclose(vây);
if (save_ssh) right_line(1,s,ssh,http);
if (save_http) right_line(2,s,ssh,http);
}
Về việc kiểm tra xem một chuỗi/từ có tồn tại trong tệp hay không trước khi ghi nó, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/43490641/
Tôi có khung dữ liệu sau (df_hvl) với tên cột "FzListe" và dữ liệu sau: FzListe 7MA1, 7OS1 7MA1, 7ZJB 7MA2, 7MA3, 7OS1 76G1, 7MA1, 7OS1 7
Tôi có một vấn đề nhỏ. Tôi chỉ muốn ghi vào tệp nếu chuỗi/từ tương tự mà tôi đang cố viết không tồn tại. Trong trường hợp của tôi, đó là địa chỉ IP và cổng, được phân tách bằng dấu ://. Nếu tôi viết thủ công các tệp như 193...:80 và 193...:22, thì nó đề cập đến
Làm cách nào tôi có thể trả về ví dụ về các từ trong cột kết quả? Gần nhất tôi nhận được là [\W]{2,[^,\W].+[?=,] ID Text Kết quả của tôi (Trùng khớp chính xác) Dự kiến (Trận đấu chính xác) 1 Từ A, Thế giới B, Từ C, thế giới B, từ B 2 wo
Tôi muốn lấy một chuỗi giữa các dấu ngoặc kép. Tôi biết giải pháp là: /'.*?'/ nhưng vấn đề là nó không hoạt động với trường hợp sở hữu hoặc rút gọn trong tiếng Anh. Ví dụ: What is name of Mario's Brother in t
Tôi nên tìm từ xuất hiện nhiều nhất trong câu. Đây là những gì tôi đã thử nhưng nó không hoạt động. '); $max = -1; $resultWords = array(); $resultCount = array();
Tôi mới làm quen với vim. Tôi đang cố gắng thực hành (gần đây đã đọc một số hướng dẫn), nhưng tôi thấy rằng tôi không thể không đánh dấu các ký tự/từ/dòng trong "sao chép-dán". Trong Textmate tôi thường sử dụng SHIFT + CTRL + LeftArrowKe
Có ai biết từ điển tiếng Anh ở định dạng JSON có (từ, định nghĩa và loại từ, ví dụ: danh từ/tính từ/động từ/trạng từ) ở định dạng này: [ {"Word" : "Chair", "Definition" : "A
Tôi đang thực hiện một số javascript và đồng thời tôi nhận thấy rằng tôi không thể thay thế "document.getElementById('label').innerHTML = document.get
Xin chào, tôi đang sử dụng Groovy 2.1.5 và tôi phải viết mã hiển thị nội dung/tệp của một thư mục có đường dẫn nhất định, sau đó sao lưu các tệp và thay thế các từ/chuỗi trong tệp. Đây là mã tôi đang sử dụng để thử thay thế một từ trong Chuỗi tệp đã chọn
Tôi đang chuẩn bị một thử nghiệm trong đó tôi muốn viết một chương trình sử dụng python để nhận ra một số từ nhất định mà người tham gia nói. Tôi đã tìm kiếm rất nhiều về nhận dạng giọng nói trong python nhưng kết quả rất phức tạp (như CMUSphinx). Điều tôi muốn thực hiện là một chương trình chấp nhận
Giả sử tôi có đoạn mã sau: $size = 23.9 $size = "$size GB" write $size Tôi muốn sử dụng cùng một biến trong những thứ khác, tức là if ($size -lt 20) {...} rõ ràng
Tôi muốn thay thế tất cả các trường hợp của từ Date trong một chuỗi trừ khi đó là Date() (tức là Ngày theo sau là dấu ngoặc đơn). Đây là một ví dụ về chuỗi và những gì tôi đã thử ban đầu: x gsub("Date", dán("Date:", S
Tôi mới làm quen với Java và lập trình, xin hãy ghi nhớ điều đó và đừng khắt khe với tôi ^^. Tiếp theo, gần đây tôi đã tham gia một số khóa đào tạo về Java và tôi rất thích thử thách này, nhưng giờ tôi cảm thấy bế tắc. Tôi đã thực hiện một số ví dụ để tìm chuỗi lớn nhất được người dùng nhập và mọi thứ đều hoạt động tốt
Tôi phải cho một số x và viết x chuỗi (chữ). Tôi phải tìm ra cái được viết nhiều nhất. Nó hoạt động, nhưng khi tôi cố đọc nó từ tập tin thì không được. Ví dụ: nếu tôi thực hiện a.out'' #include #include in
Các học viên ở đây xin vui lòng thông cảm nếu câu hỏi này có vẻ nực cười. Giả sử tôi đang cố gắng tham chiếu các ký tự trong một chuỗi chứ không phải chính chuỗi đó, tôi nên làm điều này như thế nào? Ý tôi là; đã cho: var str = "Tôi tự hỏi làm thế nào mà một chiếc máy tính có bộ não phân tán lại có thể tỉnh táo được" i
Đây là Akshatha. Tôi đã phân tích dữ liệu sau. Tôi muốn nhận được từng từ riêng lẻ. Tôi có thể có mã mẫu để tiếp tục RTRV-HDR RH01 SIMULATOR 09-11-18 16 13 19 MR
Tôi có một chuỗi tùy ý luôn chứa ít nhất một từ tiếng Anh theo sau là một chuỗi số: "Xin chào thế giới 1234" Làm cách nào để tôi chỉ trích xuất "Xin chào thế giới" từ chuỗi? Câu trả lời hay nhất Đối với tôi, có vẻ như bạn cần biểu thức chính quy nghịch đảo: St
Tôi đang cố gắng nhập một câu bốn từ và sau đó có thể in ra từng từ riêng lẻ bằng cách sử dụng chỉ mục và chuỗi con. Có ý kiến gì tôi đang làm sai không? Đã chỉnh sửa Vậy đây có phải là cách nó phải như vậy không? Tôi đã chạy nó hai lần và nhận được hai câu trả lời khác nhau nên tôi không chắc lắm
Cách tìm một cụm từ (từ) ở đầu văn bản Tôi cần một giải pháp rất nhanh để tìm hiểu xem văn bản có bắt đầu bằng một số cụm từ đã biết Các cụm từ của tôi trong bảng Mysql (innodb) như sau: TẠO BẢNG NẾU KHÔNG EXISTS `
Tôi có một từ điển trong bảng MYSQL gồm 240 000 từ. Ví dụ: nếu tôi có các chữ cái G, I, G, S, N> và O, tôi muốn chọn tất cả các từ trong bảng có chứa tất cả hoặc một phần các chữ cái này (và không có chữ cái nào khác). từ có thể chấp nhận được
Tôi là một lập trình viên xuất sắc, rất giỏi!