Src portの一般化


In [83]:
import numpy as np
import pandas as pd
import pylab as pl
import matplotlib.pyplot as plt

%matplotlib inline

df = pd.read_csv('tmp/session_.csv')

In [84]:
df.dtypes


Out[84]:
ID            int64
Serial        int64
SrcIP        object
DstIP        object
SessionID     int64
SrcPort       int64
DstPort       int64
Flags        object
Proto        object
dtype: object

In [104]:
df['SrcPortCls0'] =df['SrcPort']/4096
df['SrcPortCls0']=np.floor(df['SrcPortCls0'])
df['SrcPortCls1'] =df['SrcPort']/1024
df['SrcPortCls1']=np.floor(df['SrcPortCls1'])
df['SrcPortCls2'] =df['SrcPort']/256
df['SrcPortCls2']=np.floor(df['SrcPortCls2'])
df['SrcPortCls3'] =df['SrcPort']/128
df['SrcPortCls3']=np.floor(df['SrcPortCls3'])
df['SrcPortCls4'] =df['SrcPort']/64
df['SrcPortCls4']=np.floor(df['SrcPortCls4'])
df['SrcPortCls5'] =df['SrcPort']/32
df['SrcPortCls5']=np.floor(df['SrcPortCls5'])

In [86]:
df.dtypes


Out[86]:
ID               int64
Serial           int64
SrcIP           object
DstIP           object
SessionID        int64
SrcPort          int64
DstPort          int64
Flags           object
Proto           object
SrcPortCls0    float64
SrcPortCls1    float64
SrcPortCls2    float64
dtype: object

In [108]:
pl.figure(figsize=(12, 6))
p = df.groupby('SrcPort')['SrcPort'].count().plot.bar(width=2)
p.tick_params(labelbottom='off',top='off',bottom='off')
fig = p.get_figure()
fig.savefig('tmp/srcport001.png')



In [102]:
pl.figure(figsize=(12, 6))
p = df.groupby('SrcPortCls0')['SrcPortCls0'].count().plot.bar()
#p.tick_params(labelbottom='off',top='off',bottom='off')
p.set_xticks(range(65536/4096))
p.set_xticklabels(range(65536/4096))
fig = p.get_figure()
fig.savefig('tmp/srcport002.png')



In [89]:
pl.figure(figsize=(12, 6))
p = df.groupby('SrcPortCls1')['SrcPortCls1'].count().plot.bar()
p.tick_params(labelbottom='off',top='off',bottom='off')
fig = p.get_figure()
fig.savefig('tmp/srcport003.png')



In [90]:
pl.figure(figsize=(12, 6))
p = df.groupby('SrcPortCls2')['SrcPortCls2'].count().plot.bar()
p.tick_params(labelbottom='off',top='off',bottom='off')
fig = p.get_figure()
fig.savefig('tmp/srcport004.png')



In [92]:
pl.figure(figsize=(12, 6))
p = df.groupby('SrcPortCls3')['SrcPortCls3'].count().plot.bar()
p.tick_params(labelbottom='off',top='off',bottom='off')
fig = p.get_figure()
fig.savefig('tmp/srcport005.png')



In [106]:
pl.figure(figsize=(12, 6))
p = df.groupby('SrcPortCls4')['SrcPortCls4'].count().plot.bar()
p.tick_params(labelbottom='off',top='off',bottom='off')
fig = p.get_figure()
fig.savefig('tmp/srcport006.png')



In [107]:
pl.figure(figsize=(12, 6))
p = df.groupby('SrcPortCls5')['SrcPortCls5'].count().plot.bar()
p.tick_params(labelbottom='off',top='off',bottom='off')
fig = p.get_figure()
fig.savefig('tmp/srcport007.png')



In [109]:
df.to_csv("tmp/session_a.csv")

どの程度であれば許容できるか.


In [ ]: