我已经尝试在ASN号码下获取IP列表,例如AS8167但是我没有这样的运气.我已经看到团队cymru有一个IP到ASN,但这与我实际需要的相反.
由于软件限制,我们目前在所有机器上运行Windows.
但是,在此范围内,我们需要将进入IP和端口的某些数据包重定向到不同的端口(相同的IP).我们有软件监听"代理端口".
这可以通过类似于以下内容的方式在Linux上使用IPTables实现:
iptables -t nat -I PREROUTING -p udp -d <DSTIP> --dport <DSTPORT> -m u32 --u32 '0>>22&0x3C@8=0xFFFFFFFF && 0>>22&0x3C@12=0x54536F75 && 0>>22&0x3C@16=0x72636520 && 0>>22&0x3C@20=0x456E6769 && 0>>22&0x3C@24=0x6E652051 && 0>>22&0x3C@28=0x75657279' -j REDIRECT --to-port <REDIRECT PORT>
Run Code Online (Sandbox Code Playgroud)
这在linux上工作得很好,并且会将某些数据包重定向到我们的代理软件,但是它是否可以在Windows上执行此类操作而无需在我们的Windows机器前面获得专用机器?
我在考虑用pcap.net写一些东西,但我猜这将不得不直接从NIC读取而不是Windows?
routing network-programming iptables windows-firewall pcap.net
我目前有这些规则:
iptables -I FORWARD -p udp -d {IPDST} --dport {PORTDST} -m u32 --u32 '0>>22&0x3C@8=0xFFFFFFFF' -j SRCDS-TRF
iptables -I SRCDS-TRF -p udp -d {IPDST} --dport {PORTDST} -m u32 --u32 '0>>22&0x3C@10&0xFFFF=0x5453' -m limit --limit 45/second --limit-burst 150 -j ACCEPT
iptables -I SRCDS-TRF -p udp -d {IPDST} --dport {PORTDST} -m u32 --u32 '0>>22&0x3C@9&0xFF=0x55' -m limit --limit 3/second --limit-burst 20 -j ACCEPT
iptables -I SRCDS-TRF -p udp -d {IPDST} --dport {PORTDST} -m u32 --u32 '0>>22&0x3C@9&0xFF=0x56' -m limit --limit 3/second --limit-burst 15 -j ACCEPT
iptables …
Run Code Online (Sandbox Code Playgroud) 我有这个基本代码,可以检查每分钟运行的记事本.
namespace Watcher
{
class Program
{
static void Main(string[] args)
{
for (int i = 0; ; i--)
{
foreach (Process clsProcess in Process.GetProcesses())
{
if (clsProcess.ProcessName.Contains("notepad"))
{
Console.WriteLine("True");
}
Console.WriteLine("NFalse");
}
Thread.Sleep(10000);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是它为每个正在运行的进程返回"NFalse"(例如,它将打印100个).如何才能使此打印一次显示该进程未运行?
我目前正在使用以下脚本:
#!/bin/bash
#
# tc uses the following units when passed as a parameter.
# kbps: Kilobytes per second
# mbps: Megabytes per second
# kbit: Kilobits per second
# mbit: Megabits per second
# bps: Bytes per second
# Amounts of data can be specified in:
# kb or k: Kilobytes
# mb or m: Megabytes
# mbit: Megabits
# kbit: Kilobits
# To get the byte figure from bits, divide the number by 8 bit
#
#
# …
Run Code Online (Sandbox Code Playgroud) 我的功能目前正常工作,但它从我的服务器发送主IP地址而不是另一个.
以下是代码片段:
void *sendpacket(void *par1)
{
running_threads++;
int thread_id = (int)par1;
unsigned long start_ip = htonl(ntohl(start)+(per_thread*thread_id));
unsigned long end = htonl(ntohl(start)+(per_thread*(thread_id+1)));
unsigned long w;
int y;
unsigned char buf[65536];
strcpy(buf, "M-SEARCH * HTTP/1.1\r\nHost:239.255.255.250:1900\r\nST:ssdp:all\r\nMan:\"ssdp:discover\"\r\nMX:3\r\n\r\n");
int sizeofpayload = 90;
int sock;
if((sock=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP))<0) {
perror("cant open socket");
exit(-1);
}
for(w=ntohl(start_ip);w<htonl(end);w++)
{
struct sockaddr_in servaddr;
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr=htonl(w);
servaddr.sin_port=htons(1900);
sendto(sock,(char *)buf,sizeofpayload,0, (struct sockaddr *)&servaddr,sizeof(servaddr));
bytes_sent+=sizeofpayload;
scanned++;
hosts_done++;
usleep(sleep_between*1000);
}
close(sock);
running_threads--;
return;
}
Run Code Online (Sandbox Code Playgroud)
这会将数据包发送到变量w,在端口1900上从我的默认服务器IP调用它192.168.0.1然而我希望它从192.168.1.1发送数据包,因此伪造UDP数据包欺骗到另一个地址.
servaddr.sin_addr.s_addr=htonl(w);
Run Code Online (Sandbox Code Playgroud)
处理目标地址,但我很难编辑源IP地址.
我目前正在建立一个小而简单的推荐系统.但是,我无法尝试返回单个用户拥有的推荐数量.当新用户注册它时,它存储在名为"referid"的列中,并且那里的ID对应于引用他的用户名.
但是,在尝试查找"referid"列中提及用户ID的次数然后回显它时,我收到此错误:
Catchable fatal error: Object of class PDOStatement could not be converted to string in /home/refined/public_html/refer.php on line 30
Run Code Online (Sandbox Code Playgroud)
我无法理解究竟是什么导致了这一点.我做了一个快速谷歌,我只能看到PDO与字符串或其他东西不兼容.我之前没有使用过PHP和MYSQL,所以我不确定如何"不"使用PDO.
<?php
$checknumber = $odb -> prepare("SELECT COUNT('referid') FROM `users` WHERE `ID` = :ID");
$checknumber -> execute(array(':ID' => $_SESSION['ID']));
echo($checknumber);
?>
Run Code Online (Sandbox Code Playgroud)
很感谢任何形式的帮助.